给变量的集合命名
可以包含任何类型
可以包含不同类型的数据
有反向缩影 正向缩影
list的下标和子list
list的下表从零开始,和C语言挺类似的,但是增加了负下标的使用。
-2 ------ 倒数第二个元素
-1 ------ 最后一个元素
0 ------ 第一个元素
切割 [3:5] 包含起点不包含终点
子list的提取:
可通过下标指定范围,用于提取出一个list的一部分。下标表明位置,一个是起始位置,一个是结束位置,中间使用冒号分割,如果不指定起始位置,则默认 从0开始,如果不指定结束位置,结束位置为-1,子list表示包括起始位置处的元素,一直到结束位置,单数不包括结束位置的元素。负下标也可以参与下标的表 示:
>>> a
[0, 1, 2, 3, 4, 5, 6, 7]
>>> b = a[1:4]
>>> b
[1, 2, 3]
>>> b = a[1:-1]
>>> b
[1, 2, 3, 4, 5, 6]
>>> b = a[1:]
>>> b
[1, 2, 3, 4, 5, 6, 7]
>>> b = a[:]
>>> b
[0, 1, 2, 3, 4, 5, 6, 7]
改变新的子list的值,不会改变原来list的值
复制list
创建list时存储list地址(在内存中的地址)和内容,当拷贝时,复制的是地址位置即引用,不是内容。
x = ['a','b','c']
y = x
y[1] = 'z'
y
Out[2]: ['a', 'z', 'c']
x
Out[3]: ['a', 'z', 'c']
完全拷贝
y=list(x)或y=[:]
这样y的值变了X中的值就不会变了
处理list的方法:
>>> #list.append(n),追加元素
>>> a
[0, 1, 2, 3, 4, 5, 6, 7]
>>> a.append(6)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6]
fam = ["A",1.77,"dad",189]
fam + ['me',1.79]
两个list相加就是相连
>>> b
['a', 'b', 'c', 'd']
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6]
>>> a.extend(b)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd']
>>> a.append(b)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd', ['a', 'b', 'c', 'd']]
del(fam[2]) 删除
>>> #list.count(var) , 计算var在list中出现的次数
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 6]
>>> a.count(6)
2
>>>
>>> #len(list) , 返回list的长度
>>> len(a)
9
>>> #list.index(var) , 返回var在list中的位置,若无,则抛出异常 >>> a [0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd', ['a', 'b', 'c', 'd']] >>> a.index('x') Traceback (most recent call last): File "<pyshell#67>", line 1, in <module> a.index('x') ValueError: 'x' is not in list >>> a.index(4) 4 >>> a.index(6) 6 >>>
>>> #list.insert(index,var) , 在index出插入var,其余元素向后推,如果index大于list的长度,就会在后面添加。如果index小于0,就要在最开始出添加 >>> a [0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd', ['a', 'b', 'c', 'd']] >>> a.insert(0,1) >>> a [1, 0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd', ['a', 'b', 'c', 'd']] >>> a.insert(100,100) >>> a [1, 0, 1, 2, 3, 4, 5, 6, 7, 6, 'a', 'b', 'c', 'd', ['a', 'b', 'c', 'd'], 100] >>>