列表
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]