列表

已完成

Python 支持许多复合数据类型,这些类型将其他值组合在一起。 最通用的列表是 列表,可以编写为逗号分隔值序列,或方括号之间的 。 列表可能包含不同类型的项,但通常所有项的类型都相同:

squares = [1, 4, 9, 16, 25]
squares

输出为:

[1, 4, 9, 16, 25]

与字符串和所有其他内置 序列类型一样,可以对列表进行索引和切片:

squares[0]  # Indexing returns the item.

输出为:

1

此示例显示负索引:

squares[-1]

输出为:

25

此示例显示切片如何返回新列表:

squares[-3:]  # Slicing returns a new list.

输出为:

[9, 16, 25]

所有切片操作都会返回一个新列表,其中有请求的元素。 因此,以下切片会返回新的浅层列表副本:

squares[:]

输出为:

[1, 4, 9, 16, 25]

列表还支持用加号(“+”)运算符进行串联:

squares + [36, 49, 64, 81, 100]

输出为:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

与不 可变的字符串不同,列表是 可变 类型。 也就是说,你可更改列表中的任何值。 假设你定义了一个包含错误项的列表:

cubes = [1, 8, 27, 65, 125]  # Something's wrong here...
4 ** 3  # The cube of 4 is 64, not 65!

输出为:

64

下面是用于更正项和显示结果的方法:

cubes[3] = 64  # Replace the wrong value.
cubes

输出为:

[1, 8, 27, 64, 125]

可向切片赋值,这些切片可更改列表的大小或完全清除列表。 首先,创建一个新列表:

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
letters

输出为:

['a', 'b', 'c', 'd', 'e', 'f', 'g']

然后,可使用切片替换一些值:

# Replace some values.
letters[2:5] = ['C', 'D', 'E']
letters

输出为:

['a', 'b', 'C', 'D', 'E', 'f', 'g']

下面是从列表中删除值的方法:

# Now remove them.
letters[2:5] = []
letters

输出为:

['a', 'b', 'f', 'g']

此示例演示如何清除列表:

# Clear the list by replacing all the elements with an empty list.
letters[:] = []
letters

输出为:

[]

内置 len() 函数也适用于列表。 可用它来获取列表的长度:

letters = ['a', 'b', 'c', 'd']
len(letters)

输出为:

4

可使用嵌套列表。 也就是说,你可创建包含其他列表的列表。 例如:

a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]
x

输出为:

[['a', 'b', 'c'], [1, 2, 3]]

x 是列表内嵌的列表。 可使用更简单的列表所采用的相同索引访问其组成列表:

x[0]

输出为:

['a', 'b', 'c']

此外,通过指定其他索引编号,你可直接访问这些组成列表中的元素:

x[0][0]

输出为:

'a'

亲自试一试

嵌套列表在编程中经常出现,因此很值得练习。

  • 要在 x 后面包括哪些索引来获取输出 c
  • 如何获取输出 3

提示 (展开以显示)
x[0][2]
x[1][2]