美文网首页
Python入门之列表

Python入门之列表

作者: 我的袜子都是洞 | 来源:发表于2019-07-17 14:17 被阅读0次

列表

列表是由一系列特定顺序排列的元素组成。可以创建包含字母表中所有字母、数字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)

相关文章

网友评论

      本文标题:Python入门之列表

      本文链接:https://www.haomeiwen.com/subject/qtmqlctx.html