列表
列表是由一系列特定顺序排列的元素组成。可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。鉴于列表通常包含多个元素,给列表指定一个表示复数的名称是个不错的主意。
在Python中,用方括号([]
)来表示列表,并用逗号来分割其中的元素。
bicycles = ['trek',
'cannondale', 'redline', 'specialized']
print(bicycles)
运行打印即显示
['trek',
'cannondale', 'redline', 'specialized']
访问列表元素
列表是有序集合。因此要访问列表的任何元素,只需要将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列出的名称,再指出元素的索引,并将其放在方括号内。
bicycles = ['trek',
'cannondale', 'redline', 'specialized']
print(bicycles[0])
可以结合title()
方法让用户看到一个更规范的输出。
bicycles = ['trek',
'cannondale', 'redline', 'specialized']
print(bicycles[0].title())
输出结果:
Trek
索引从0开始
在Python中,第一个列表元素的索引为0,而不是1。在大多数编程语言中都是如此。这与列表操作的底层实现相关。
Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素。这种语法很有用,因为经常需要在不知道列表长度的情况下访问最后的元素。这种约定也适用于其他的负数索引。
修改、添加和删除元素
修改列表元素
列表本身是动态的,可以随时修改。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0] = 'ducati'
print(motorcycles)
打印结果:
['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']
在列表中添加元素
在列表末尾添加元素
在列表中添加新元素时,最简单的方式是将元素附加到列表末尾。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append('ducati')
print(motorcycles)
方法append()
将元素'ducati'
添加到了列表的末尾,而不影响列表中的其他所有元素。
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati']
在列表中添加元素
使用insert()
可在列表的任何位置添加新元素。为此,需要指定新元素的索引和值。
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)
这个示例中,值'ducati'
被插入到了列表开头;方法insert()
在索引0处添加空间,并将值'ducati'
存储在这个地方。这种操作将列表中既有的每个元素都右移了一个位置。
从列表中删除元素
使用del语句删除元素
如果知道要删除的元素在列表中的位置,可使用del语句。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[0]
print(motorcycles)
执行结果:
['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']
使用方法pop()删除元素
方法pop()
可删除列表末尾的元素并且返回元素本身,让你能够接着使用它。列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。
弹出列表中任何位置处的元素
可以使用pop()
来删除列表中任何位置的元素,只需要在括号中指定要删除元素的索引即可。
如果确定使用del语句还是pop()方法:如果要从列表删除一个元素,且不再以任何方式使用它,就使用del语句;如果要在删除元素后还能继续使用它,就使用pop()方法。
根据值删除元素
有时候,不知道要从列表中删除元素的值所处的位置。只知道要删除元素的值,可以使用方法remove()
。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.remove('honda')
print(motorcycles)
结果:
['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']
组织列表
创建的列表中,元素的排列顺序常常是无法预测的。有时候,希望保留列表元素最初的排列顺序,而有时候又需要调整列表排列顺序。Python提供了很多组织列表的方式,可根据情况选用。
使用sort()方法对列表进行永久性排序
Python方法sort()
能够较为轻松的对列表进行排序。假如有一个汽车列表,并让其中的汽车按字母顺序排列。
cars = ['bmw', 'audi', 'toyata', 'subaru']
cars.sort()
print(cars)
现在汽车的顺序是按字母顺序进行排列的,再也无法恢复到原来的排列顺序。
['audi', 'bmw', 'subaru', 'toyota']
也可以按与字母顺序相反的顺序排列列表元素,只需向sort()
方法传递参数reverse=True
。
使用函数sorted()对列表进行临时排序
要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()
。函数sorted()
让你能够按特定顺序显示列表元素,同时不影响他们在列表中的原始排列顺序。
cars = ['bmw', 'audi', 'toyata', 'subaru']
print(sorted(cars))
print(cars)
结果输出:
['audi', 'bmw', 'subaru', 'toyota']
['bmw', 'audi', 'toyata', 'subaru']
倒序打印列表
要反转列表元素的排列顺序,可使用方法reverse()
。方法reverse()
同样是永久性的修改列表元素的排列顺序,但可随时恢复到原来的顺序,再调用一次reverse()
方法即可。
确定列表长度
使用函数len()
可快速获悉列表的长度。
操作列表
遍历整个列表
我们经常需要遍历列表的所有元素,对每个元素执行相同的操作。
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)
遍历打印结果:
alice
david
carolina
创建数值列表
列表非常适合用于存储数字集合。
使用函数range()
Python函数range()能够轻松的生成一系列的数字。
for value in range(1,5):
print(value)
输出:
1
2
3
4
函数range()
让Python从你指定的第一个值开始,并在到达你指定的第二个值后停止,因此输出不包含第二个值。
使用range()创建数字列表
创建数字列表,可使用函数list()
将range()的结果直接转换为列表。
numbers = list(range(1,6))
print(numbers)
输出:
[1, 2, 3, 4, 5]
使用range()
函数时,还可以指定步长。
如打印1~10内的偶数
even_numbers = list(range(1,11,2))
print(even_numbers)
输出:
[2, 4, 6, 8, 10]
对数字列表执行简单的统计计算
有几个专门用于处理数字列表的Python函数。找出数字列表最大值的max()
方法、最小值的min()
方法和总和的sum()
方法。
列表解析
列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。
下面的代码示例使用列表解析创建平方数列表:
squares = [value**2 for value in range(1,11)]
print(squares)
使用列表解析需要勤加练习。当觉得自己编写三四行代码来生成列表有点繁复时,就应考虑创建列表解析了。
使用列表的一部分
处理列表的部分元素——切片。
切片
和函数range()一样,Python在到达你指定的第二个索引前面的元素后停止。要输出前三个元素,需要指定索引0~3,这将输出0、1、2的元素。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
不指定第一个索引将从列表开头开始提取。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:3])
让列表终止于末尾也可使用类似的语法。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[1:])
提取最后3个元素
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:])
遍历切片
如果要遍历部分元素,可在for循环中使用切片。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
for player in players[:3]:
print(player)
复制列表
要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])
。这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。
元组
列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,然而有时候需要创建一系列不可修改的元素,元祖可以满足这种需求。Python将不能修改的值称为不可变的,而不可变的列表称为元组。
定义元组
元组看起来犹如列表,但使用圆括号而不是方括号。定义元组后,就可以使用索引来访问其元素,就像访问列表一样。
dimensions = (200, 500)
print(dimensions[0])
print(dimensions[1])
遍历元组的所有值
像列表一样,也可以使用for循环来遍历元组中的所有值。
dimensions = (200, 500)
for dimension in dimensions:
print(dimension)
网友评论