很多时候我们需要对列表中的元素进行统一的操作,这时候,我们就需要遍历列表。
a = ['我','你','他']
for i in a:
print(i)
输出:
我
你
他
for i in range(1,5):
print(i)
输出:
1
2
3
4
函数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
列表会发生同样的改变。