切片
列表的一部分python称之为切片
创建切片可指定要使用的第一个元素的索引和最后一个元素的索引,这样输出的是第一个索引到第二个索引的前一个元素。
例如 要输出前三个元素,使用0~3索引
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
['charles', 'martina', 'michael']
如果没有第一个起始索引,那切片会从头开始
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:4])
['charles', 'martina', 'michael', 'florence']
没有第二个终止索引,那切片会从起始索引的元素到列表的最后
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[2:])
从2索引处的第三个元素开始输出直到结束
['michael', 'florence', 'eli']
,负数索引返回离列表末尾相应距离的元素,因此你可以输出列表末尾的任何 切片。例如,如果你要输出名单上的最后三名队员,可使用切片
players[-3:] : players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:])
上述代码打印最后三名队员的名字,即便队员名单的长度发生变化也是如此
遍历切片
要遍历列表的全部元素可以使用for语句
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:")
for player in players[:3]:
print(player.title())
代码在for循环中没有遍历全部元素,只是遍历了第一个到第三个元素。
Here are the first three players on my team:
Charles
Martina
Michael
复制列表
复制一个列表,先创建一个完整列表的切片。方法是同时忽略起始索引和终止索引:
([:] )。这就成了创建从第一个元素到最后一个元素的切片。
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
如上就把my_foods列表复制到friend_foods列表
但是复制列表不能用两个列表简单的赋值,如下
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods
列表的赋值给另一个列表这不是复制列表,这样执行python是把新变量friends_foods关联到my_foods,这两个变量其实指向的是同一个列表。在此期间,若是分别对两个变量添加元素或其他的操作,这样结果只是在同一个列表中添加元素。