遍历整个列表
一个简单的示例:
magicians = ['alice', 'david', 'carolina'] #1
for magician in magicians: #2
print(magician) #3
循环体中的内容,通过格式上的缩进来包含。同时注意当循环结束时,magician的内容仍有意义,为列表magicians中的最后一个元素的内容。
创建数值列表
使用range()来进行创建
for value in range(1, 10, 2):
print(value)
在这个示例中,通过函数range()打印从1~10中间隔为2的数字,即1,3,5,7,9。
同时对于range(1, 10)会从1打印到9,即若想打印从1~5的数字,需要使用range(1, 6)。
如果想用python内置函数简单形成一个数列,可以采用list(range(x, y))的形式,来形成从x~y-1的数列。
另外,min()、max()和sum()也可以对数据进行相应的处理(找出最小值,找出最大值,加和)。
列表解析
在形成新的列表时,对于简单的逻辑结构可以通过一行代码来简化原先需要三四行代码,通过列表解析式的形式简便的生成新列表。
原有:
squares = []
for num in range(1, 11):
squares.append(num ** 2)
print(squares)
列表解析式:
squares = [value ** 2 for value in range(1, 11)]
print(squares)
列表切片
players = ['charles', 'martina', 'michael', 'florence','eli']
print(players[0:3])
其中0:3表示第0个元素到第2个元素,若想打印第1到第4个元素需要将切片变为1:5。如果没有指定,即如[:3]或[3:],前者表示切片为从开始到第2个元素,后者表示为从第三个元素到结束。
如果要输出列表后几个元素,可以按此种方式切片:[-3:]。表示输出列表中最后三个元素。
此外可以将切片结合循环使用:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:")
for player in players[:3]:
print(player.title())
复制列表
要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。 这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。
my_food = ['pizza', 'falafel', 'carrot cake']
friend_food = my_food[:]
若直接采用赋值的方式进行复制,即另
friend_food = my_food
并不是真正的复制,而是friend_food与my_food指向同一个值,当对其中任意一个变量进行改变时,另一个也会同样发生改变。
此外,复制还可以通过python自带模块copy以及数据处理模块numpy中的相应函数实现。
元组(tuple)
可简单的理解无法修改内容的“列表”。定义方式如下:
dimensions = (200, 50)
print(dimensions[0])
print(dimensions[1])
PEP8 建议每级缩进都是用4个空格,这既可提高可读性,又留下了足够的多级缩进空间。
在本章中,你学习了:如何高效地处理列表中的元素;如何使用for循环遍历列表,Python 如何根据缩进来确定程序的结构以及如何避免一些常见的缩进错误;如何创建简单的数字列表, 以及可对数字列表执行的一些操作;如何通过切片来使用列表的一部分和复制列表。你还学习了 元组(它对不应变化的值提供了一定程度的保护),以及在代码变得越来越复杂时如何设置格式, 使其易于阅读。