list是python里非常强大的数据类型
list 复制
1
2
3
4
5
6
7
8
| >>> l1=[1,2,3]
>>> l2=l1
>>> l1[0]=10
>>> print l1
[10, 2, 3]
>>> print l2
[10, 2, 3]
>>>
|
如何复制?
1
2
3
4
5
6
7
8
9
| >>> l2=l1[:]
>>> print l2
[10, 2, 3]
>>> l1[0]=24
>>> print l1
[24, 2, 3]
>>> print l2
[10, 2, 3]
>>>
|
发生了什么? 第一种是指向,其实还是同一个内容。 第二种是复制。
本质上的区别
1
2
3
4
5
6
7
8
9
10
| >>> l2 = l1
>>> l2 == l1 #值相同
True
>>> l2 is l1 #指向同一个地方
True
>>> l2 = l1[:]
>>> l2 == l1 #值相同
True
>>> l2 is l1 #并不是指向同一个地方
False
|
list如何添加元素?
1
2
3
4
5
| >>> l1=[]
>>> l1[0]="a"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
|
为什么? 因为l1等于一个空列表,没有空间。 l1[0]是需要空间的。
我们该怎么让空list存储数据?
list有一写默认的函数
删除成员的方法
1
2
3
4
5
6
7
8
9
10
11
12
| >>> l1.append("b")
>>> l1.append("c")
>>> l1.append("d")
>>> l1.append("b")
>>> print l1
["b", "c", "d","b"]
>>> l1.remove("b")
>>> print l1
["c", "d","b"]
>>> l1.remove("b")
>>> print l1
["c","d"]
|
还有
l1.pop()
再试一个删除的高级用法
1
2
3
4
5
| >>> print l1
[2, 3, 4, 5]
>>> del l1[1:3]
>>> print l1
[2, 5]
|
如何插入一个元素:
1
2
3
| >>> l1.insert(1,67)
>>> print l1
[2, 67, 5]
|