for循环
在列表里如果不用循环的话,要想输出列表中的所有元素可能要进行多次输出,这其中有很多重复步骤。这样的做法大大降低了工作效率,但如果用一个for循环那么只需要一条循环语句便可以将列表中的元素全部输出。不过使用for循环语句时一定要注意缩进。一旦多缩进或者少缩进都将会影响程序的效果。(不要忘记冒号)
for pizza in pizzas:
print('I like '+pizza+' pizza')
print('I really love pizza!')
这里的循环语句是print(‘I like ‘+pizza+’ pizza’)当循环结束后会输出print(‘I really love pizza!’)。
函数range()
使用函数range() 可以打印出一系列数字
for x in range(0,5):
print(x)
要注意这里的输出结果是0 1 2 3 4,而不是0 1 2 3 4 5.函数range() 让Python从你指定的第一个值开始数,并在到达你指定的第二个值 后停止,因此输出不包含第二个值(这里为5)。
range()不仅可以使用在数值列表中也可以使用在其他地方。
trip_mode = ['地铁','公交车','自行车','汽车']
for x in range(1,3):#要注意取值范围
print(trip_mode[x])
这里输出结果是“公交车 自行车”。
搭配list()函数创建数字列表
numbers = list(range(0,6))
print(numbers)
在使用函数range() 也可以指定步长。
even_numbers = list(range(2,11,2))
print(even_numbers)#从2开始不断加2
也可以使用函数range() 创建需要的数字集。例如下面是创建空列表计算值的平方,将值加入空列表中。
squares=[]
for x in range(1,11):
squares.append(x**2)
print(squares)
结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
除此以外可以使用列表解析的方法将这串代码简化。(一定要注意这里的for循环后没有冒号)
squares = [x**2 for x in range(1,11)]#这里的for 语句末尾没有冒号
print(squares)#列表解析 将for 循环和创建新元素的代码合并成一行,并自动附加新元素
在python中能够利用一些函数快速计算出列表中的最大值,最小值,和。并且适用于多个元素。
num=[32,54,43,78,56,12]
print(min(num))#计算最小值
print(max(num))#计算最大值
print(sum(num))#计算总和
切片
列表中切片也是一个应用非常多的方法,它可以让你利用列表中的部分元素。在这里切片的取值和函数range() 的取值方式一样都是从第一个值开始第二个停止且不算。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])#从零开始计算,第二个数不计,输出前三个
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:])#会全部打印
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:-1])#会打印出第3和第4个队员的名字
print('\n')
结果:
[‘charles’, ‘martina’, ‘michael’]
[‘charles’, ‘martina’, ‘michael’, ‘florence’, ‘eli’]
[‘michael’, ‘florence’]
遍历切片
如果想要遍历列表中的部分元素可以在for循环中遍历切片。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
for player in players[1:4]:
print(player.title()+' ',end='')
复制列表
要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:] )。这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个 列表。
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoli')#在末尾中加入
friend_foods.insert(1,'ice cream')#插入
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
结果:
My favorite foods are:
[‘pizza’, ‘falafel’, ‘carrot cake’, ‘cannoli’]
My friend’s favorite foods are:
[‘pizza’, ‘ice cream’, ‘falafel’, ‘carrot cake’]
不使用 friend_foods = my_foods的原因是如果想对其中一个进行添加修改那么两个列表都会进行添加修改输出的结果就会是这样:
My favorite foods are:
[‘pizza’, ‘ice cream’, ‘falafel’, ‘carrot cake’, ‘cannoli’]
My friend’s favorite foods are:
[‘pizza’, ‘ice cream’, ‘falafel’, ‘carrot cake’, ‘cannoli’]
这样做就大大减小了对列表的灵活性使用。
元组
元组和列表的赋值语法相同,只不过列表是方括号而元组是圆括号,而且元组也可以像列表一样用for循环遍元组中的所有元素。
dimensions = (200, 50,30)
for dimension in dimensions:
print(dimension)
元组也可以使用列表中切片的的方法。
tuple=(1,2,3,4,5,6,7,8)
print(tuple[2])
print(tuple[:5])
print(tuple[:])
但需要注意的是当元组中只有一个元素时要加上英文逗号要不然会被认为是一个整型。
>>> tuple=(1)
>>> type(tuple)
<class 'int'>
>>> tuple=(1,)
>>> type(tuple)
<class 'tuple'>
元组与列表的最大区别就是元组不能修改,也正因为这个原因所以当想修改元组里面的元素时只能重新定义。而用于列表中的排序、替换、添加等方法在元组中也不能使用,但元组可以使用列表中合并,遍历,计算长度,求最值。使用方法与列表使用方法相同。