目录
列表由一系列按特定序列的元素组成。
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
输出结果
['trek', 'cannondale', 'redline', 'specialized']
负数索引
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(f"{bicycles[-1]} {bicycles[-2]}")
负数索引返回倒数列表元素
specialized redline
在列表末尾添加元素
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
bicycles.append('ducati')
print(bicycles)
将元素添加到列表末尾
['trek', 'cannondale', 'redline', 'specialized', 'ducati']
在列表中插入元素
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
bicycles.insert(0, 'ducati')
print(bicycles)
在索引0处添加空间,并将值存储到这个地方
['ducati', 'trek', 'cannondale', 'redline', 'specialized']
使用del语句删除元素
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
del bicycles[0]
print(bicycles)
删除指定元素
['cannondale', 'redline', 'specialized']
使用方法pop()删除元素
删除列表末尾元素,并返回该元素
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
popped_bicycles = bicycles.pop()
print(popped_bicycles)
print(bicycles)
输出结果
specialized
['trek', 'cannondale', 'redline']
弹出列表中任意位置处的元素
在pop()的圆括号中指定要删除元素的索引
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
popped_bicycles = bicycles.pop(1)
print(popped_bicycles)
print(bicycles)
输出结果
cannondale
['trek', 'redline', 'specialized']
根据值删除元素
['trek', 'cannondale', 'specialized']
使用remove()
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
bicycles.remove('redline')
print(bicycles)
输出结果
['trek', 'cannondale', 'specialized']
注意:方法 remove() 只删除第一个指定的元素。如果要删除的值可能在列表中出现多次,就需要使用循环来确保每个值都删除。
使用方法sort()对列表永久排序
可以使用 sort() 对列表中的元素按照字母顺序排列。对于数字列表则是从小到大的顺序排列。
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
bicycles.sort()
print(bicycles)
方法 sort() 由永久性地修改列表元素的排列顺序。输出结果为:
['cannondale', 'redline', 'specialized', 'trek']
还可以以相反的顺序排序,只需向 sort() 方法传递 reverse=True
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
bicycles.sort(reverse=True)
print(bicycles)
输出结果
['trek', 'specialized', 'redline', 'cannondale']
使用函数sorted()对列表临时排序
使用 sorted()可以在保留列表元素原来的排列顺序的前提下,同时以特定的顺序呈现。
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(sorted(bicycles))
print(bicycles)
输出结果
['cannondale', 'redline', 'specialized', 'trek']
['trek', 'cannondale', 'redline', 'specialized']
倒着打印列表
反转列表元素的排列顺序
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
bicycles.reverse()
print(bicycles)
输出结果
['specialized', 'redline', 'cannondale', 'trek']
确定列表的长度
使用函数 len()可快速获悉列表的长度。
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(len(bicycles))
输出结果
4
遍历整个列表
使用for循环
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
for bicycle in bicycles:
print(bicycle)
输出结果
trek
cannondale
redline
specialized
使用函数 range()
for value in range(1, 5):
print(value)
函数range()从指定的第一个值开始数,并在到达你指定的第二个值时停止,同时不包含第二个值。
1
2
3
4
使用range()创建数字列表
numbers = list(range(1, 5))
print(numbers)
输出结果
[1, 2, 3, 4]
可在表示range()的圆括号内指定第三个值,这个值告诉Python在指定范围内每隔多少元素提取一个。
列表解析
列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。
squares = [value**2 for value in range(1, 11)]
print(squares)
生成平方数列表
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
对数字列表执行简单的统计计算
numbers = list(range(1, 5))
print(min(numbers))
print(max(numbers))
print(sum(numbers))
输出结果
1
4
10
列表切片
处理列表的部分元素,Python称之为切片。要创建切片,可指定要使用的第一个元素和最后一个元素的索引,与range()一样,在到达第二个索引之前的元素后停止。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[1:4])
输出结果
['martina', 'michael', 'florence']
如果没有指定第一个索引,Python将自动从列表开头开始 。要让切片终止于列表末尾,也可使用类似的语法。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:4])
print(players[2:])
print(players[-3:])
输出结果
['charles', 'martina', 'michael', 'florence']
['michael', 'florence', 'eli']
['michael', 'florence', 'eli']
可在表示切片的方括号内指定第三个值,这个值告诉Python在指定范围内每隔多少元素提取一个。
遍历切片
如果要遍历列表的部分元素,可在for循环中使用切片。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
for player in players[:3]:
print(player)
输出结果
charles
martina
michael
复制列表
要复制列表,可创建一个包含整个列表的的切片,方法是同时省略起始索引和终止索引 ( [:] )
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
print(my_foods)
print(friend_foods)
输出结果
['pizza', 'falafel', 'carrot cake']
['pizza', 'falafel', 'carrot cake']
不使用切片的情况下复制列表:
my_foods = ['pizza', 'falafel', 'carrot cake']
# 这行不通
friend_foods = my_foods
my_foods.append('cannoli')
friend_foods.append('ice cream')
print(my_foods)
print(friend_foods)
这里将 my_foods 赋给 friend_foods,而不是将 my_foods 的副本赋给 friend_foods 。这种语法实际上是让Python将新变量 friend_foods 关联到已与 my_foods 相关联 的列表,因此这两个变量指向同一个列表。
输出表明,两个列表是相同的,这并非我们想要的结果
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']
元组
Python将不能修改的值称为不改变的,而不可变的列表称为元组。元组看起来很像列表,但使用圆括号而非中括号来标识。
dimensions = (200, 50)
print(dimensions[0])
print(dimensions[1])
200
50
由于试图修改元组的操作是被禁止的,因此Python不能给元组的元素赋值。
严格地说,元组是由逗号标识的,圆括号只是让元组看起来更整洁、更清晰。如果要定义只包含一个元素的元组,必须在这个元素后面加上逗号
dimensions = (200,)
遍历元组中的所有值
方法和列表一样,使用for循环来遍历
dimensions = (200, 50)
for dimension in dimensions:
print(dimension)
200
50
修改元组变量
虽然不能修改元组的元素,但可以给存储元组的变量赋值,可以重新定义整个元组。
dimensions = (200, 50)
print(dimensions)
dimensions = (250, 100)
print(dimensions)
(200, 50)
(250, 100)