一、游离整个列表
需要对列表中的每个元素都执行相同的操作时,可使用Python中的for 循环。
使用单数和复数式名称,可帮助你判断代码段处理的是单个列表元素还是整个列表。
在for 循环中,可对每个元素执行任何操作。
pizzas=['cheese pizza', 'free pizza', 'deep dish pizza', 'Greek pizza']
for pizza in pizzas:
print("l like "+pizza)
print("l really like pizza")
结果为:
l like cheese pizza
l like free pizza
l like deep dish pizza
l like Greek pizza
l really like pizza
注:1.对于位于for 语句后面且属于循环组成部分的代码行,一定要缩进。
2.切勿忘记冒号
二、创建数值列表
1.使用函数range()
Python函数range() 让你能够轻松地生成一系列的数字。例如,可以像下面这样使用函数range() 来打印一系列的数字:
for number in range(1,5)
print(number)
结果为:
1
2
3
4
5
函数range() 让Python从你指定的第一个值开始数,并在到达你指定的第二个值 后停止,因此输出不包含第二个值。
使用range() 时,如果输出不符合预期,请尝试将指定的值加1或减1。
2.使用range() 创建数字列表
numbers=list(range(1,10000001))
print(numbers)
使用函数range() 时,还可指定步长
odd_numbers=list(range(1,21,2))
for odd_number in odd_numbers:
print(odd_number)
结果为:
1
3
5
7
9
11
13
15
17
19
3.对数字列表执行简单的统计计算
numbers=list(range(1,10000001))
print(min(numbers))
print(max(numbers))
print(sum(numbers))
结果为:
1
10000000
50000005000000
cubes=[]
for number in range(1,11):
cube=number**3
cubes.append(cube)
print(cubes)
cubes=[]
for number in range(1,11):
cubes.append(number**3)
print(cubes)
结果均为:[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
4.列表解析
cubes=[number**3 for number in range(1,11)]
print(cubes)
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
要使用这种语法,首先指定一个描述性的列表名,如cubes ;然后,指定一个左方括号,并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中,表达式 为number**3 ,它计算方立值。接下来,编写一个for 循环,用于给表达式提供值,再加上右方括号。在这个示例中,for 循环为for number in range(1,11) ,它将值 1~10提供给表达式number**3 。请注意,这里的for 语句末尾没有冒号。
三、使用列表的一部分(切片)
1.切片
要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range() 一样,Python在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需 要指定索引0~3,这将输出分别为0 、1 和2 的元素。
print("The first three items in the list are:")
print(names[0:3])
结果为:
The first three items in the list are:
['gong xin', 'qiao mei', 'guo jia le']
如果你没有指定第一个索引,Python将自动从列表开头开始
要让切片终止于列表末尾,也可使用类似的语法。
无论列表多长,这种语法都能够让你输出从特定位置到列表末尾的所有元素。本书前面说过,负数索引返回离列表末尾相应距离的元素,因此你可以输出列表末尾的任何切片。 例如,如果你要输出名单上的最后三名队员,可使用切片players[-3:]
2.遍历切片
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:")
for player in players[:3]:
print(player.title())
结果为:Here are the first three players on my team: Charles Martina Michael
3.复制列表
要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:] )。这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。
pizzas=['cheese pizza', 'free pizza', 'deep dish pizza', 'Greek pizza']
friend_pizzas=pizzas[:]
pizzas.append('pepperoni pizza')
friend_pizzas.append('new york style pizza') #若不复制列表,后添加的元素都在一个列表中
print('\nMy favorite pizzas are:')
for pizza in pizzas:
print(pizza)
print("\nMy friend's favorite pizzas are:")
for friend_pizza in friend_pizzas:
print(friend_pizza)
结果为:
My favorite pizzas are:
cheese pizza
free pizza
deep dish pizza
Greek pizza
pepperoni pizza
My friend's favorite pizzas are:
cheese pizza
free pizza
deep dish pizza
Greek pizza
new york style pizza
四、元组
Python将不能修改的值称为不可变的 ,而不可变的列表被称为元组 。
元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。
foods=('apple','banana','pear','vegetables','starwberry')
for food in foods:
print(food)
food[0]='safi' #代码试图修改第一个元素的值,导致Python返回类型错误消息。由于试图修改元组的
操作是被禁止的,因此Python指出不能给元组的元素赋值
foods=('apple','banana','pear','dragonfruit','nut') #给元组赋值
for food in foods:
print(food)
虽然不能修改元组的元素,但可以给存储元组的变量赋值