第3章 列表简介

发布于 2022-03-02  472 次阅读


本章,学习列表是什么,以及如何使用列表元素。列表可以让你在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含数百万个元素,列表是新手可以直接使用的最强大的Python工具之一。

3.1 列表是什么?

列表是由一些列按照特定顺序排列的元素组成。可以创建包含字母表中所有的字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。列表通常包含多个元素,因此,给指列表指定一个表示负数的名称(如letters、digits或names)是个不错的主意。
Python中用[]表示列表。并用逗号分隔开其中的元素:

# bicycles.py
bicycles = ['trek','cannondale','redline','specialized']
print(bicycles)

file

但是这种结果并不是我们想看到的

3.1.1 访问列表元素

列表是有序集合,因此要访问列表的任意元素,只需将该元素的为止(索引)告诉给Python。
例如:

bicycles = ['trek','cannondale','redline','specialized']
print(bicycles[0])

file

这才是想让看到的结果。
还可以对任意列表元素调用第二章介绍的字符串方法。
例如:

bicycles = ['trek','cannondale','redline','specialized']
print(bicyles[0].title())

file

3.1.2 索引是从0而不是1开始的

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

Python为了访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可以让Python返回最后一个列表元素。-2返回倒数第二个元素,-3返回倒数第3个依次类推。。
file

3.1.3 使用列表中的各个值

可以像使用其他变量一样使用列表中的各个值。
可以使用f字符串根据列表之的值来创建消息。

bicycles =
['trek','cannondale','redline','specialized']
message = f"My first love is a {bicycles [0].title()}"

print(message)

file

3.2 修改、添加和删除元素

创建的大多数列表将是动态的,这意味着列表创建后,将随着程序的运行增加元素。例如,你创建一个游戏,要求玩家射杀从天而降的外星人。为此,可以在开始时将外星人存储在列表中,然后每当有外星人被射杀时,都将其从列表中删除,而每次有新的外星人出现在屏幕上时,都将其添加到列表中。在整个游戏运行期间,外星人列表的长度将不断变化。

3.2.1 修改列表元素

修改列表元素的语法与访问列表元素的语法类似,要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。
假设有一个摩托车列表:

# motorcycles.py
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)

motorcycles[0] = 'ducati'
print(motorcycles)

3.2.2 在列表中添加元素

你可能在众多原因要在列表中添加新元素。例如,你可能希望游戏中出现新的外星人、添加可视化数据或给网站添加新注册的用户。Python提供了多种在既有列表中添加新数据的方式。

1.在列表末尾添加元素

在列表中添加新元素时,最简单的方式是将元素附件(append)到列表。给列表附加元素时,它将天骄到列表末尾。继续使用前一个示例中的列表,在其末尾添加新元素‘ducati’:

# motorcycles.py
motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)

motorcycles.append('ducati')
print(motorcycles)

file

方法append()将元素'ducati'添加到列表末尾,而不影响列表中的其他所有元素;

方法append()让动态地创建列表易如反掌。

Arr = []
Arr.append('guoan')
Arr.append('Xiaoz')
Arr.append('XIAOb')
print(Arr)

file
这种创建列表的方式极其常见,因为经常要等程序运行后,才知道用户要在程序中存储哪些数据。为控制用户,可首先创建一个空列表,用于存储用户将要输入的值,然后将用户提供的每个新值附加到列表中。

2.在列表中插入元素

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

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

motorcycle.insert(0,'ducati')
print(motorcycle)

file

3.2.3 从列表中删除元素

外星人删除,或者注销账户。
可以根据位置或值来删除列表中的元素。

1.使用del语句删除元素

若知道位置

motorcycle = ['honda','yamaha','suzuki']
print(motorcycle)

del motorcycle[0]
print(motircycle)

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

有时候需要将元素从列表中删除,并接着使用它的值。
方法pop()删除列表末尾的元素,并且能够接着使用它。术语弹出(pop)源于这样的类比。列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。

popped_xxx = xxx.pop()  #前者存储了被弹出的值

3.弹出列表中任意位置的元素

只需在pop()中加入数字即可
如果删除后要用一下用pop()否则用del语句

4.根据值删除元素

有时候,不知道要从列表中删除值的位置。
只知道要删除的值。
可以使用remove()

motorcycle = ['honda','yamaha','suzuki']
motorcycle.remove('honda')

注意:方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现很多次,就需要使用循环来确保将每个值都删除。

3.3 组织列表

3.3.1 使用方法sort()对列表永久排序

Python方法sort()。

# cars.py
cars = ["bmw","audi","toyota","subaru"]
cars.sort()
print(cars)

按照相反的顺序排列列表元素,向sort()方法传递参数reverse = True:

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

上述操作修改是永久的。

3.3.2 使用sorted()函数对列表临时排序

cars = ["bmw","audi","toyota","subaru"]
print(cars)
print(sorted(cars))
print(cars)

3.3.3 倒着打印列表

反转列表元素
reverse()

cars.reverse()

永久修改

3.3.4 确定列表的长度

len()

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

当列表为空,访问列表[-1]报错

总结

列表是什么,如何使用列表元素,如何增删元素进行排序,长度。避免索引错误。


擦肩而过的概率