Python 支持多种复合数据类型,可将不同值组合在一起。最常用的是列表——用方括号标注,逗号分隔的一组值。列表可以包含不同类型的元素,一般情况下,各个元素的类型相同:
>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]
和字符串(及其他内置 [sequence]类型)一样,列表也支持索引和切片:
>>> squares[0]
1
>>> squares[-1]
25
>>> squares[-3:]
[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]
>>> cubes[3] = 64
>>> cubes
[1, 8, 27, 64, 125]
append() 方法可以在列表末尾添加新元素:
>>> cubes.append(216)
>>> cubes.append(7 ** 3)
>>>> cubes
[1, 8, 27, 64, 125, 216, 343]
为切片赋值可以改变列表大小,甚至清空整个列表:
>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']
>>> letters[:] = []
>>>** letters
[]
还可以嵌套列表(创建包含其他列表的列表),例如:
>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'
内置函数 len()
也支持列表:
>>>** letters = ['a', 'b', 'c', 'd']
>>>** len(letters)
4
-
len
(s) :返回对象的长度(元素个数)。
实参可以是序列(如 string、bytes、tuple、list 或 range 等)或集合(如 dictionary、set 或 frozen set 等)。
len
对于大于sys.maxsize
的长度如range(2 ** 100)
会引发OverflowError
。 -
sys.maxsize
一个整数,表示Py_ssize_t
类型的变量可以取到的最大值。在 32 位平台上通常为2**31 - 1
,在 64 位平台上通常为2**63 - 1
。