Python 列表简介

276 阅读5分钟

列表是什么?如何使用列表?

  • 列表让你能够在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含数百万个元素。

列表是什么?

  • 列表由一系列按特定顺序排列的元素组成。
  • 列表通常包含多个元素,因此给列表指定一个表示复数的名称(如 letters、digits 或 names)是个不错的主意。
  • 在 Python 中,用方括号([])表示列表,并用逗号分隔其中的元素。
  • 列表简单示例:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)

访问列表元素

  • 列表是有序集合,因此要访问列表的任意元素,只需将该元素的位置(索引)告诉 Python 即可。
  • 从列表 bicycles 中提取第一辆自行车:
print(bicycles[0])

索引从 0 而不是 1 开始

  • 在 Python 中,第一个列表元素的索引为 0,而不是 1。
  • 下面的代码访问 索引 1索引 3 处的自行车:
print(bicycles[1])
print(bicycles[3])
  • 这些代码返回列表中的 第二个第四个 元素。
  • Python 为访问 最后一个列表元素 提供了一种特殊语法。通过将 索引指定为 -1,可让 Python 返回 最后一个列表元素
print(bicycles[-1])

使用列表中的各个值

  • 你可以像使用其他变量一样使用列表中的各个值。
  • 可以使用f字符串根据列表中的值来创建消息:
message = f"My first bicycle was a {bicycles[0].title()}."
print(message)

修改、添加和删除元素

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

修改列表元素

  • 要修改列表元素,可指定 列表名 和要修改的列表的 索引,再指定该元素的新值。
  • 假设有一个摩托车列表,其中的第一个元素为 honda,修改它的值:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0] = 'ducati'
print(motorcycles)
  • 你可以修改任意列表元素的值,而不仅仅是第一个元素的值。

在列表中添加元素

  • Python 提供了多种在既有列表中添加新数据的方式。
  1. 在列表末尾添加元素:在列表中添加新元素时,最简单的方式是将元素附加(append)到列表。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append('ducati')
print(motorcycles)
  1. 在列表中插入元素:使用 insert() 可在列表的任何位置添加新元素。但需要指定新元素的索引和值
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.insert(0, 'ducati')
print(motorcycles)
  • 方法 insert()索引 0 处添加空间,并将值 ducati 存储到这个地方。

从列表中删除元素

  • 你可以根据位置或值来删除列表中的元素。
  1. 使用 del 语句删除元素:如果知道要删除的元素在列表中的位置,可使用 del 语句。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del(motorcycles[0])
print(motorcycles)
  • 使用 del 可删除任意位置处的列表元素,条件是知道其索引。

使用del语句将值从列表中删除后,你就无法再访问它。

  1. 使用方法 pop() 删除元素:方法 pop() 删除列表 末尾 的元素,并让你能够接着使用它。
  • 列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。
  • 下面来从列表 motorcycles 中弹出一款摩托车:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)
  1. 弹出列表中任何位置处的元素:实际上,可以使用 pop() 来删除列表中 任意位置 的元素,只需在圆括号中指定要删除元素的 索引 即可。
motorcycles = ['honda', 'yamaha', 'suzuki']
first_owned = motorcycles.pop(0)
print(f"The first motorcycle I owned was a {first_owned.title()}.")

如果你不确定该使用 del 语句还是 pop() 方法,下面是一个简单的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用 del 语句;如果你要在删除元素后还能继续使用它,就使用方法 pop()

  1. 根据值删除元素:如果只知道要删除的元素的,可使用方法 remove()
  • 假设要从列表 motorcycles 中删除值 ducati
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
motorcycles.remove('ducati')
print(motorcycles)
  • 使用 remove() 从列表中删除元素时,也可接着使用它的值。

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

组织列表

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

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
  • 方法 sort() 永久性地修改列表元素的排列顺序。
  • 还可以按与字母顺序相反的顺序排列列表元素,只需向 sort() 方法传递参数 reverse=True 即可。
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)

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

  • 要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数 sorted()
  • 函数 sorted() 让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
  • 下面尝试来对汽车列表调用这个函数:
cars = ['bmw', 'audi', 'toyota', 'subaru']
print("Here is the original list:")
print(cars)
print("Here is the sorted list:")
print(sorted(cars))
print("Here is the original list again:")
print(cars)
  • 调用函数 sorted() 后,列表元素的排列顺序并没有变。如果要按与字母顺序相反的顺序显示列表,也可向函数 sorted() 传递参数 reverse=True

倒着打印列表

  • 要反转列表元素的排列顺序,可使用方法 reverse()
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)
  • reverse() 不是按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序。
  • 方法 reverse() 永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,只需对列表再次调用 reverse() 即可。

确定列表的长度

  • 使用函数 len() 可快速获悉列表的长度。
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(len(cars))

使用列表时避免索引错误

  • 索引错误意味着 Python 在指定索引处找不到元素。
  • 程序发生索引错误时,请尝试将指定的索引减 1,然后再次运行程序,看看结果是否正确。