Python从入门到实践之使用列表|第3天

User:你好我是森林
Date:2018-03-16
Mark:《Python从入门到实践》

使用列表

切片

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range()一样,Python 在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需要指定索引0~3, 这将输出分别为012的元素。

代码示例:

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3]) # 取从索引0开始到第三个结束,最后输出前三个
print(players[0:3]) # 输出从索引1到4结束,
print(players[:4])  # 没有索引就从列表开头开始,到指定的索引值结束
print(players[2:]) # 没有结束索引就知道最后结束
print(players[-3:]) # 倒数第三个

运行结果:

['charles', 'martina', 'michael']
['charles', 'martina', 'michael']
['charles', 'martina', 'michael', 'florence']
['michael', 'florence', 'eli']
['michael', 'florence', 'eli']
遍历切片

前面我们遍历列表的时候采用for语句来实现的,同理,切片同样可以采用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())

运行结果:

Here are the first three players on my team:
Charles
Martina
Michael
复制切片

要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。 这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。复制的过程中可以进行赋值或者修改操作。例如新增一个元素。

代码示例:

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoli')
friend_foods.append('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', 'falafel', 'carrot cake', 'ice cream']

元组

定义元组

列表是可以修改的,主要适合存储程序在运行期间可能会变化的数据。如果需要创建不可修改的值就需要用元组,所以元组可以理解为:不可被修改的列表。但是元组采用的是方括号来标识。和列表同理,均可采用索引来访问元素。

代码示例:

change_list = ('one','two','three','four') #定义一个元组 
print(change_list[0]) #取元组索引为0 的值
change_list[1] = 'hello' #修改元组中索引为1的值 会被报错,因为元组不可以被修改。
遍历元组

遍历元组和遍历列表一样,采用for 来实现。

代码如下:

change_list = (1,2,3,4)
for number in change_list:
    print(number)

运行结果:

1
2
3
4
修改元组变量

修改元组的变量不等于修改元组的元素,也就是给存储元组的变量赋值。

代码示例:

change_list = (1,2,3,4)
for number in change_list:
    print(number)
    
change_list = (11,22,33,444)
for number in change_list:
    print(number)

运行结果:

1
2
3
4
11
22
33
444
点赞