4.1 列表的定义和访问
python有四种表示数据集合的类型,它们分别是列表、元组、集合和字典。
列表是使用同一个变量名的一组数据,该组数据是同一种变量类型。
列表就如同一个变量一样。我们用表格来理解列表,如下图所示:

a是名称,它占据了6个内存单位,这6个内存单位都能保存数据,它们共享同一个名字:a 。
a[0]代表第一个元素,a[3]代表第四个元素。
列表的定义如下:
#直接列举所有项number=[1,23,45,6,78,98]list = ["apple", "banana", "cherry","apple"]print(list)#一次生成n个sequence=[0]*10print(sequence)i=15sequence=[1]*i #列表个数也可以使用变量iprint(sequence)number这个列表内的元素全部都是整数,而list这个列表则是字符串,sequence是创建一个长度为10,元素值都是0的列表
列表的元素可以是不同的数据类型,但不建议这么做。
列表是通过下标来访问各个元素的。下标从0开始,例如:
a[0]表示列表a第1个元素。
a[5]表示列表a第6个元素。
下标还可以是负数,-1表示最后一个元素,-2是倒数第二,以此类推。那么负数最小的下标就是-len(a),代表第一个元素
我们可以通过下标给每个元素赋予不同的值:
a=[2,3,56,98,1,23,56,67]a[0]=6a[1]=7a[2]=18a[-1]=34 #最后一个元素赋值34i=a[2]+8 #i的值就是26print(a) #打印看看列表a的值下标不能越界。所谓的越界就是访问了列表不存在的元素,例如列表只有6个元素,访问的是第7个元素。
下标可以是变量,如a[i]也可以是表达式,如a[i+2],使用表达式也一样,绝对不能越界。
k=2a=[2,3,56,98,1,23,56,67]a[0]=5 #使用具体数字作为下标a[k]=4 #使用变量作为下标a[k+1]=5 #使用表达式作为下标a[8]=9 #下标越界了,a[8]表示第9个元素列表的下标还可以这么使用:
a=[2,3,56,98,1,23,56,67]b=a[2:5] #下标为0到下标为5(不包括5)这部分拷贝出来成一个新的列表print(a) #[2, 3, 56, 98, 1, 23, 56, 67] 列表a本身没有改变print(b) #[56, 98, 1] 列表b是新生成的b=a[:5] #相当于a[0:5]print(b)b=a[3:] #相当于a[3:8],实际上第二个数字就算越界也不会异常,就算写a[3:100]也可以print(b)列表的元素的个数称为列表的长度。有一个函数len,可以根据这个函数获得列表的元素个数。
例如下面的代码将打印8:
a=[2,3,56,98,1,23,56,67]print(len(a))练习题
-
判断下列写法有无语法错误1. (2分) [判断]
<code><div class='codeNewLine'>a=[1,2,3,4,5]</div><div class='codeNewLine'>a[4]=9</div></code>2. (2分) [判断]<code><div class='codeNewLine'>a=[1,2]</div><div class='codeNewLine'>a[2]=4</div></code>3. (2分) [判断]<code><div class='codeNewLine'>a=[5,4,3]</div><div class='codeNewLine'>i=1</div><div class='codeNewLine'>a[i]=i</div></code>4. (2分) [判断]<code><div class='codeNewLine'>a=[2,3,4,5,6,7,8,9]</div><div class='codeNewLine'><span class='pyFunction'>print</span>(a[-1])</div></code>5. (2分) [判断]<code><div class='codeNewLine'>a=[2,3,56,98,1,23,56,67]</div><div class='codeNewLine'>b=a[3:]</div></code>6. (2分) [判断]<code><div class='codeNewLine'>i=5</div><div class='codeNewLine'>a=[2]*5</div></code> -
下标和len练习1.设置第三个元素的值设置为4 (2分) [编程填空]
<code><div class='codeNewLine'>a=[2,3,56,98,1,23,56,67]</div><div class='codeNewLine'>a[ ]=4</div><div class='codeNewLine'></div></code>2.截取序列a的前三个元素 (2分) [编程填空]<code><div class='codeNewLine'>a=[2,3,56,98,1,23,56,67]</div><div class='codeNewLine'>b= </div></code>3.设置最后元素的值设置为14 (2分) [编程填空]<code><div class='codeNewLine'>a=[2,3,56,98,1,23,56,67,23,45,12,11,1,0,-5,43,124,8]</div><div class='codeNewLine'>a[ ]=14</div><div class='codeNewLine'><span class='pyFunction'>print</span>(b)</div></code>4.使用len函数 (2分) [填空]已知序列如代码所示,那么len(a)的值是5.一个序列a,那么它的下标范围是 (4分) [填空]k是下标的话,k的范围是:
<=k<=
(要注意到下标可以为负数)6.如果有一个列表t,它的长度未知,t的第一个元素是t[0],第二个元素是t[1],那么最后一个元素是: (2分) [填空(编程批改)]7.已知列表a长度大于10,关于下标的说法错误的是 (2分) [选择]A.
B. a[-2]是倒数第二个元素
C. a[-1]和a[len(a)-1]都是最后一个元素
D. a[0]和a[-len(a)]都是第一个元素
E. a[-len(a)+1]是第三个元素