Python 最常用组合数据类型是列表(list),通过将所有值写在一对方括号[ ]里并以逗号,隔开就可以创建一个list 对象。列表中的值(对象)称为列表中的数据元素。这些元素的数据类型可以不同。
如[1, "Hello", 3.4]定义了一个包含三个元素的list 对象,这三个元素的类型分别是int、str 和float 类型。
为了能重复对同一个list 对象进行操作,可以用变量名引用这个list 对象。
my_list = [1, "Hello", 3.4]
print(my_list)
type(my_list)
输出:
[1, 'Hello', 3.4]
list
和字符串一样,list 是一个有序集合,每个元素都有一个确定的下标,下标从0 开始,长度为n的列表的最后一个元素的下标是n-1。可以用下标运算符[]访问list 的元素。
下标也可以是负数,最后一个元素的下标是−1,倒数第2 个元素的下标就是−2,……
可以用切片操作(slicing operator) 访问一个范围内的多个元素,其格式为:
list[start:end:step=1]
表示查询从start 到end 之间(但不包含end)间隔步长为step 的元素。
如果没有指定step,则表示step =1,即间隔步长为1;
如果没有指定start,则表示从第1 个元素(start=0)开始;
如果没有指定end,则表示到最后1 个元素。
list 是可变的(mutable),可以通过下标(切片)修改其中的1 个或多个元素。对切片的修改还有“插入”或“删除”的效果。
当del 作用于指向list 的变量本身时,这个变量名从系统中被删除,它的list 的引用计数减1,只有当list 的引用计数为0 时,这个list 才被删除。
对1 个列表,当既要访问索引又要遍历元素时,可以这样写:
alist = [3,7,'hello']
for i in range (len(alist)):
print(i ,alist[i])
输出:
0 3
1 7
2 hello
更好的办法是使用枚举函数enumerate()。
对于一个可迭代的(iterable)的对象(如列表、字符串),枚举函数enumerate()将其组成一个索引序列,即一个“索引和值”的序列。例如:
for i,value in enumerate(alist):
print(i ,value)
输出:
0 3
1 7
2 hello
枚举函数enumerate()还可以接收第二个参数,用于指定索引起始值,如:
for i,value in enumerate(alist,1):
print(i ,value)
输出:
1 3
2 7
3 hello