列表

3.1.4.列表lists
在python中有一些复合数据类型,通常用来使值分组在一起。最常用的是list列表,可以写成在方括号中用逗号分开的值或其他项。list可以包含不同类型的项目,但是通常大部分情况下所有的项目都是同类型的。

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

就像strings一样,在list中也可以index和slice。

>>> squares[0] # indexing returns the item

1

>>> squares[-1] 25

>>> squares[-3:] # slicing returns a new list

[9, 16, 25]

所有的slice操作返回一个新的list包含其所需要的元素。这就是说下面这个slice操作返回一个新的原list的copy。

>>> squares[:] [1, 4, 9, 16, 25]

list同样支持concatenatition操作。

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

跟string不可改变immutable的特性不同,list是可以改变内容的类型。

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

通过使用append()method方法,你也可以在list的结尾添加新的项目。

>>> cubes.append(216) # add the cube of 6

>>> cubes.append(7 ** 3) # and the cube of 7

>>> cubes [1, 8, 27, 64, 125, 216, 343]

给slice赋值assignment也是可以的,这样做可能会改变list的长度,甚至全部清除了它。

>>> 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()可以同样应用于list。

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

list还可以嵌套nest,即在一个list中还包含另一个list。

>>> 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'

 

你可能感兴趣的:(列表)