操作列表

很多时候我们需要对列表中的元素进行统一的操作,这时候,我们就需要遍历列表。

使用for循环遍历列表

a = ['我','你','他']
for i in a:
    print(i)

输出:

创建数值列表

使用函数range()

for i in range(1,5):
    print(i)

输出:

1
2
3
4

函数range()从你指定的第一个数字开始,并在指定的第二个数字前面停下。

使用函数range()创建列表

使用函数list()将函数range()的结果直接转为列表:

num = list(range(1,5))
print(num)

输出:

[1,2,3,4]

可以给range()函数指定步长,来完成更多工作:

num = list(range(2,11,2))
print(num)

输出:

[2,4,6,8,10]

在这个示例中,range()函数从2开始,并以2为步长不断增加。 使用函数range()可以创建几乎所有的数字列表:

a = []
for i in range(1,5):
    a.append(i ** 2)
print(a)

输出:

[1,4,9,16]

对数字列表进行统计

>>> a = [1,2,3,4,5,6,7]
>>> min(a)
1
>>> max(a)
7
>>> sum(a)
29

列表解析

列表解析for循环和创建新元素的代码合并在一行:

a = [i ** 2 for i in range(1,5)]
print(a)

输出:

[1,4,9,16]

使用列表解析,要先给定一个列表名,如a,在定义一个表达式,如 i ** 2,然后编写一个for循环,用于给表达式提供值,最后将表达式与for循环使用方括号[]括起来。

使用列表一部分

切片

a = [1,2,3,4,5,6,7]

print(a[0:3])
print(a[:3])
print(a[2:4])
print(a[4:])
print(a[-3:])

输出:

[1,2,3]
[1,2,3]
[3,4]
[5, 6, 7]
[5, 6, 7]

当不指定起始索引时,Python默认从索引0处开始,当不指定终止索引时,Python默认到最后一个元素为止。 同样的,我们可以使用for循环遍历切片。

a = [1,2,3,4,5,6,7]
for i in a[0:3]:
    print(i)

输出:

1
2
3

复制列表

我们可以通过创建一个包含整个列表的切片来复制列表:

a = [1,2,3,4]
b = a[:]
print(b)

输出:

[1,2,3,4]

但如果我们使用这样的方式‘复制’列表:

a = [1,2,3,4]
b = a   #错误复制列表
print(b)

这并不是两个列表。当a列表的发生改变时,b列表会发生同样的改变。