操作列表
4.1 遍历整个列表
使用for循环进行遍历
magicians = [‘alice’,‘david’,‘carolina’]
for magician in magicians:
print(magician)
alice
david
carolina
4.1.1 深入的研究循环
for循环是对列表中的每个元素执行指定步骤
4.1.2 在for循环中执行更多的操作
每个缩进的代码行都是循环的一部分,且将针对列表中的每个值都执行一次
4.1.3 在for循环结束后执行一些操作
在for循环后面的代码,没有缩进都只执行一次,而不会重复执行。
4.2 避免缩进错误
运用for循环时,要缩进,注意缩进时tab键和空格键不能同时存在,后面的冒号不能丢失。for后面的冒号告诉Python,下一行是Python的第一行。
4.3 创建数值列表
4.3.1 使用函数rang()
Python函数range()让你能够轻松地生成一系列的数字。
for value in rang(1,5)
print(value)
1
2
3
4
函数range()让Python从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出不包含第二个值。
使用rang()时如果不符合预期,请尝试将指定的值加一或减一。
4.3.2 使用range()创建数字列表
要创建数字列表,可使用函数list()将range()的结果直接转换为列表。
numbers = list(rang(1,6))
print(numbers)
[1,2,3,4,5]
使用range()时还可指定步长
even_numbers = list(range(2,11,2))
print(even_numbers)
[2,4,6,8,10]
这个示例中,函数range()从2开始数,然后不断加2,直到到达或者超过最终值。
在Python中两个**表示乘方
4.3.3 对数字列表执行简单的统计计算
digits = [1,2,3,4,5,6,7,8,9,0]
print(min(digits))(求最小值)
print(max(digits))(求最大值)
print(sum(digits))(求和)
4.4 使用列表的一部分
4.4.1 切片
要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range()一样,Python在到达你指定的第二个元素前停止。
输出列表的前三个元素:
players = [‘charles’,‘martina’,‘michael’,‘florence’,‘eli’]
print(players[0:3])
[‘charles’,‘martina’,‘michael’]
如果你没有指定第一个索引,Python将自动从列表开头开始。
players = [‘charles’,‘martina’,‘michael’,‘florence’,‘eli’]
print(players[:3])
[‘charles’,‘martina’,‘michael’]
如果想让切片停止在末尾,可使用类似语法,省略终止索引。
前面提过,负数索引返回离列表末尾相应距离的元素。
print(players[-3:]) (输出列表最后三名成员)
4.4.2 遍历切片
如果要遍历列表的部门元素,可在for循环中使用切片。
players = [‘charles’,‘martina’,‘michael’,‘florence’,‘eli’]
for player in players[:3]:
print(player.title())
4.4.3 复制列表
要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。
my_foods = [‘pizza’,‘falafel’,‘carrot cake’,‘coffe’]
friend_foods = my_foods[:]
倘若我们只是简单的将my_foods的值赋给friend_foods,就不能得到两个列表。
friend_foods = my_foods
这种语法不是将my_foods的副本存储到friend_foods,实际上是让Python将新变量friend_foods关联到my_foods的列表中,因此这两个变量都指向同一个列表。
4.5 元组
列表非常适合用于存储在程序运行期间可能的数据集。然而,有时你需要创建一些不可修改的元素,元组可以满足这种需求。Python将不能修改的值称为不可变的,而不可变的列表称为元组。
4.5.1 定义元组
元组看起来像列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素。
dimensions = (200,50)
print(dimensions[0])
print(dimensions[1])
200
50
4.5.2 遍历元组中的所有值
像列表一样,也可以使用for循环来遍历元组中的所有值
for dimension in dimensions:
print(dimension)
4.5.3 修改元组的变量
虽然不能修改元组的元素,但可以给存储的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义元组。
dimensions = (300,400)