当前位置:首页>python>Python Ⅱ

Python Ⅱ

  • 2026-10-11 06:23:52
Python Ⅱ

列表简介

“列表让你能够在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含数百万个元素。列表是可直接使用的最强大的Python功能之一,它融合了众多重要的编程概念.”

2.1 列表是什么

列表由一系列按特定顺序排列的元素组成,可以将任何东西加入列表中,其中的元素之间可以没有任何关系。

在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。

示例,这个列表包含几种自行车:

bicycles.py

bicycles =

['trek', 'cannondale', 'redline', 'specialized']

print(bicycles)

Python将打印列表的内部表示,包括方括号:

输出:['trek', 'cannondale', 'redline', 'specialized']

2.1.1 访问列表元素

列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。

bicycles =

['trek', 'cannondale', 'redline', 'specialized']

print(bicycles[0].title())

当请求获取列表元素时,Python只返回该元素,而不包括方括号和引号:

输出:Trek

2.1.2 索引从0而不是1开始

在Python中,第一个列表元素的索引为0,而不是1,第二个列表元素的索引为1.

因此,要访问列表的任何元素,都可将其位置减1,并将结果作为索引.

bicycles =

['trek', 'cannondale', 'redline', 'specialized']

print(bicycles[1])

print(bicycles[3])

这些代码返回列表中的第二个和第四个元素:

cannondale

specialized

Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素.

bicycles =

['trek', 'cannondale', 'redline', 'specialized']

print(bicycles[-1])

此代码返回'specialized'

这种约定也适用于其他负数索引,例如索引-2返回倒数第二个列表元素,索引-3返回倒数第三个列表元素,以此类推.

2.1.3 使用列表中的各个值

bicycles =

['trek', 'cannondale', 'redline', 'specialized']

message = "My first bicycle was a " + bicycles[0].title() + "."

print(message)

输出:

My first bicycle was a Trek.

2.2 修改、添加和删除元素

创建的大多数列表都将是动态的,这意味着列表创建后将随着程序的运行增删元素.

2.2.1 修改列表元素

要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。

motorcycles.py

motorcycles = ['honda', 'yamaha', 'suzuki']

print(motorcycles)

motorcycles[0] = 'ducati'

print(motorcycles)

输出:

['honda', 'yamaha', 'suzuki']

['ducati', 'yamaha', 'suzuki']

可以修改任何列表元素的值,而不仅仅是第一个元素的值.

2.2.2 在列表中添加元素

a.在列表末尾添加元素

方法:append()

在列表中添加新元素最简单的方式是将元素附加到列表末尾。给列表附加元素时,它将添加到列表末尾.

motorcycles = ['honda', 'yamaha', 'suzuki']

print(motorcycles)

motorcycles.append('ducati')

print(motorcycles)

输出:

['honda', 'yamaha', 'suzuki']

['honda', 'yamaha', 'suzuki', 'ducati']

也可先创建一个空列表,再使用一系列的append()语句添加元素:

motorcycles = []motorcycles.append('honda')motorcycles.append('yamaha')motorcycles.append('suzuki')print(motorcycles)

输出:

['honda', 'yamaha', 'suzuki']

b.在列表中插入元素

使用方法insert()可在列表的任何位置添加新元素。为此,需要指定新元素的索引和值.

motorcycles = ['honda', 'yamaha', 'suzuki']motorcycles.insert(0,'ducati') print(motorcycles)

输出:

['ducati', 'honda', 'yamaha', 'suzuki']

2.2.3 从列表中删除元素

a.使用del语句删除元素

motorcycles = ['honda', 'yamaha', 'suzuki']print(motorcycles)del motorcycles[0]print(motorcycles)

输出:

['honda', 'yamaha', 'suzuki']['yamaha', 'suzuki']

使用del可删除任何位置处的列表元素,条件是知道其索.

motorcycles = ['honda', 'yamaha', 'suzuki']print(motorcycles)del motorcycles[1]print(motorcycles)

输出:

['honda', 'yamaha', 'suzuki']['honda', 'suzuki']

b.使用方法pop()删除元素

方法pop()可删除(弹出)列表末尾的元素:

motorcycles = ['honda', 'yamaha', 'suzuki']print(motorcycles)popped_motorcycle = motorcycles.pop()print(motorcycles)print(popped_motorcycle)

输出:

['honda', 'yamaha', 'suzuki']['honda', 'yamaha']suzuki

motorcycles = ['honda', 'yamaha', 'suzuki']last_owned = motorcycles.pop()print("The last motorcycle I owned was a " + last_owned.title() + ".")

输出:

The last motorcycle I owned was a Suzuki.

c.弹出列表中任何位置处的元素

实际上,可以使用pop()来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可.

motorcycles = ['honda', 'yamaha', 'suzuki']first_owned = motorcycles.pop(0)print('The first motorcycle I owned was a ' + first_owned.title() + '.')

输出:

The first motorcycle I owned was a Honda.

每当使用pop()时,被弹出的元素就不再在列表中了.

注:如果要从列表中删除一个元素且不再以任何方式使用它,就使用del语句;如果要在删除元素后还能继续使用它,就使用方法pop().

d.根据值删除元素

如果要删除的元素的值,可使用方法remove().

motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']print(motorcycles)motorcycles.remove('ducati')print(motorcycles)

输出:

['honda', 'yamaha', 'suzuki', 'ducati']['honda', 'yamaha', 'suzuki']

使用remove()从列表中删除元素时,也可接着使用它的值.

motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']print(motorcycles)too_expensive = 'ducati'motorcycles.remove(too_expensive)print(motorcycles)print("\nA " + too_expensive.title() + " is too expensive for me.") 

输出:

['honda', 'yamaha', 'suzuki', 'ducati']['honda', 'yamaha', 'suzuki']A Ducati is too expensive for me.

注:方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值.

2.3 组织列表

在创建的列表中,元素的排列顺序常常是无法预测的,因为并非总能控制用户提供数据的顺序。这虽然在大多数情况下都是不可避免的,但经常需要以特定的顺序呈现信息.

2.3.1 使用方法sort()对列表进行永久性排序

Python方法sort()能够较为轻松地对列表进行排序:

cars.py

cars = ['bmw', 'audi', 'toyota', 'subaru']cars.sort()print(cars)

输出:

['audi', 'bmw', 'subaru', 'toyota']

方法sort()按字母顺序永久性地修改了列表元素的排列顺序.

还可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort()方法传递参数reverse=True:

cars = ['bmw', 'audi', 'toyota', 'subaru']cars.sort(reverse=True)print(cars)

输出:

['toyota', 'subaru', 'bmw', 'audi']

同样,对列表元素排列顺序的修改是永久性的.

2.3.2 使用函数sorted()对列表进行临时排序

函数sorted()能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序.

cars = ['bmw', 'audi', 'toyota', 'subaru']print("Here is the original list:")print(cars)print("\nHere is the sorted list:")print(sorted(cars))print("\nHere is the original list again:")print(cars)

Here is the original list:['bmw', 'audi', 'toyota', 'subaru']Here is the sorted list:['audi', 'bmw', 'subaru', 'toyota']Here is the original list again:['bmw', 'audi', 'toyota', 'subaru']

注:调用函数sorted()后,列表元素的排列顺序并没有变。如果需要按与字母顺序相反的顺序显示列表,也可向函数sorted()传递参数reverse=True.

2.3.3 倒着打印列表

要反转列表元素的排列顺序,可使用方法reverse():

cars = ['bmw', 'audi', 'toyota', 'subaru']print(cars)cars.reverse()print(cars)

输出:

['bmw', 'audi', 'toyota', 'subaru']['subaru', 'toyota', 'audi', 'bmw']

方法reverse()永久性修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用reverse().

2.3.4 确定列表的长度

使用函数len()可快速获悉列表的长度:

>>>cars = ['bmw', 'audi', 'toyota', 'subaru']>>>len(cars) -> 4

注:Python计算列表元素数时从1开始,因此确定列表长度时不会遇到差一错误.

2.4 使用列表时避免索引错误

一个只包含三个元素的列表,却要求获取第四个元素:

motorcycles = ['honda', 'yamaha', 'suzuki']print(motorcycles[3])

索引错误:

Traceback (most recent call last):File "motorcycles.py", line 3, in <module>print(motorcycles[3])IndexError: list index out of range

注:谨记列表索引差一.

最新文章

随机文章