第四章 操作列表
4.1 遍历整个列表
如果要遍历整个列表,可以使用for循环,通过使用临时变量来将列表中的元素取出。
4.1.1 深入的研究循环
例如:
❶ magicians = ['alice', 'david', 'carolina']
❷ for magician in magicians:
❸ print(magician)
对于上述代码,通过使用临时变量来获取列表中的值,从而实现对列表中的值的遍历。
4.1.2 在for循环中执行更多的操作
在for循环中,想包含多少行代码都可以,每个缩进的代码行都是循环的一部分,且将针对列表中的每个值都执行一次。
4.1.3 在for循环结束后执行一些操作
在for循环结束后,通常,需要提供总结性输出,以便是程序更加的完整。
4.2 避免缩进错误
4.2.1 忘记缩进
对于for循环后面的代码,要有缩进,如未有缩进,就不属于for循环的代码块
4.2.2 忘记缩进的额外的代码行
对于for循环内的代码快,别忘了缩进,如果忘了,就会造成逻辑错误
例如:
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician.title() + ", that was a great trick!")
❶ print("I can't wait to see your next trick, "+magician.title() + ".\n")
在❶中,本应该执行三次,但因为没有缩进,从而造成了只执行一次。
4.2.3 不必要的缩进
不必要的缩进的语法错误。
如:
File "hello_world.py", line 2
print(message)
^
IndentationError: unexpected indent
4.2.4 循环后不必要的缩进
注意在循环后,如果有总结性的语句,注意不必要的缩进
4.2.5 遗漏了冒号
对于for循环,要注意for循环语句末尾要有冒号,这是告诉Python,下一行是循环的下一行。
4.3 创建数值列表
4.3.1 使用函数range()
Python函数range()可以让你轻松的生成一系列的数字。
例如:
for value in range(1,5):
print(value)
注意:range()函数为左包含而右不包含,
函数range() 让Python从你指定的第一个值开始数
4.3.2 使用range创建数字列表
要创建数字列表,可使用函数list() 将range() 的结果直接转换为列表
如果将range() 作为list() 的参数,输出将为一个数字列表。
例如:
number = list(range(1,6))
print(number)
结果如下:
[1, 2, 3, 4, 5]
在range()函数中还可以指定步长
例如:
even_numbers = list(range(2,11,2))
print(even_numbers)
4.3.3 对数字列表执行简单的统计计算
对于列表,还可以找出列表的最大值,最小值和总和
例如:
>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits)
0
>>> max(digits)
9
>>> sum(digits)
45
4.3.4 列表解析
列表解析,将for 循环和创建新元素的代码合并成一行,并自动附加新元素。
例如:
squares = [value**2 for value in range(1,11)] print(squares)
输出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
4.4 使用列表的一部分
4.4.1 切片
要创建切片,可指定要使用的第一个元素和最后一个元素的索引。Python在到达你指定的第二个索引前面的元素后停止。
例如:
players = ['charles', 'martina', 'michael', 'florence', 'eli']
❶ print(players[0:3])
可以通过索引来生成列表的任何子集,
可以通过不指定第一个索引,遍历到第二个数字为止的列表的位置。
例如:
player[:5]
也可通过负数索引返回离列表末尾相应距离的元素,因此你可以输出列表末尾的任何切片。
例如:
print(players[-3: ]
4.4.2 遍历切片
若只遍历列表的部分元素,可在for循环中使用切片。
例如:
for player in players[ :3]:
print(player.title())
4.4.3 复制列表
要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])
例如:
❶ my_foods = ['pizza', 'falafel', 'carrot cake']
❷ friend_foods = my_foods[:]
注意:不可简单的将my_foods赋值给friend_foods,这种语法实际上是让Python将新变量friend_foods 关联到包含在my_foods 中的列表,因此这两个变量都指向同一个列表。
my_foods = ['pizza', 'falafel', 'carrot cake']
#这行不通
❶ friend_foods = my_foods
4.5 元组
Python将不能修改的值称为不可变的,而不可变的列表被称为元组。
4.5.1 定义元组
元组使用圆括号而不是方括号来标识,可以使用索引来访问其元素,从0开始。
注意:元组不可修改。
4.5.2 遍历元组中的所有值
使用for循环遍历元组的值
例如:
dimensions = (200, 50)
for dimension in dimensions:
print(dimension)
输出:
200
50
4.5.3 修改元组变量
若要修改元组的值,可以重新给元组赋值。但是如果赋值时修改了元组的尺寸,可重新定义整个元组。
例如:
dimensions = (200, 50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
dimensions = (400, 100)
print("\nModified dimensions:")
for dimension in dimensions:
print(dimension)
4.6 设置代码格式
4.6.1 格式设置指南
Python改进提案(俗称:PEP),PEP8是最古老的PEP之一。它向Python程序员提供了代码格式设置指南。
4.6.2 缩进
PEP8建议每级缩进都是用四个空格。
在字处理文档中,大家常常使用制表符而不是空格来缩进。
4.6.3 行长
对于行长来说,PEP8还建议注释的行长都不超过72个字符。
4.7 总结
在本章中,介绍了如何使用for循环来遍历列表。介绍了Python如何通过缩进来确定程序的结构以及如何避免一些常见的缩进错误。介绍了如何创建数字列表,以及可对数字列表执行的一些操作。介绍了如何通过切片来使用列表的一部分和复制列表。