学习笔记3(第4章:操作列表)
1、函数range()可以生成一系列数字:
for value in range(1,5): print(value)
1 2 3 4
函数range()让Python从指定的第一个值开始数,并在达到第二个值后停止,不包括第二个值。
2、要创建数字列表可使用函数list()将range()的结果直接转换为列表。将range()作为list()的参数,输出将为一个数字的列表。
numbers = list(range(2, 11,2)) #步长为2 print(numbers) squares=[] for values in range(1,11): squares.append(values**2) print(squares)
输出结果:
[2, 4, 6, 8, 10]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
3、列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。
上例生成squares的方式包含三四行代码,而列表解析只需要一行代码。
要创建自己的列表解析,需要经过一定的练习!!!
squares = [value ** 2 for value in range(1, 11)] #注意这里的for语句末尾没有冒号 print(squares)
输出结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
4、要创建切片,可指定要使用的第一个元素的索引和最后一个元素的索引加1。
players=['charles','matina','michael','florence','eli'] print(players[1:3]) #切片包含两名队员 print(players[1:]) #省略终止索引,切片终止于末尾 print(players[:3]) #没有指定起始索引从头提取 print(players[-3:]) #打印最后三个队员的名单
输出:
['matina', 'michael'] ['matina', 'michael', 'florence', 'eli'] ['charles', 'matina', 'michael'] ['michael', 'florence', 'eli']
5、切片可用来快速复制列表,且原列表不发生任何改变。
my_foods = ['pizza', 'falafel', 'cake'] friend_foods = my_foods[:] my_foods.append('cannoli') friend_foods.append('ice cream') print('My favourite foods are:') print(my_foods) print("My friend's favourite foods are :") print(friend_foods)
输出结果:
My favourite foods are: ['pizza', 'falafel', 'cake', 'cannoli'] My friend's favourite foods are : ['pizza', 'falafel', 'cake', 'ice cream']
如果不用切片复制列表:
my_foods = ['pizza', 'falafel', 'cake'] friend_foods = my_foods my_foods.append('cannoli') friend_foods.append('ice cream') print('My favourite foods are:') print(my_foods) print("\nMy friend's favourite foods are :") print(friend_foods)
输出结果:
My favourite foods are: ['pizza', 'falafel', 'cake', 'cannoli', 'ice cream'] My friend's favourite foods are : ['pizza', 'falafel', 'cake', 'cannoli', 'ice cream']
6、列表非常适合用于存储在程序运行期间可能变化的数据集。Python将不能修改的值称为不可变的,而不可变的列表被称为元组。
元组——tuple——只读的列表
元组使用圆括号来标识,逗号隔开元素。使用索引来访问其元素。