List in Python

List

list中指定位置增加元素

name.insert(1, “hello”) 表示在name的第1元素后加入 (从第0开始计算)
append表示在最后追加

name.remove(“hello”) 删除hello

pop方法 弹出
List.pop(0) 弹出第0号元素

关于copy操作一个很有意思的现象

name = [‘alex’,’jack’,[1,2,3,34]]
name1 = name.copy()
name1[0] = ‘ALEX’
name1[2][1] = 11111

print(name)
print(name1)

其中输出结果为
like$python3 copytest.py
[‘alex’, ‘jack’, [1, 11111, 3, 34]]
[‘ALEX’, ‘jack’, [1, 11111, 3, 34]]
like$

我们看到其中list中嵌套的list值都改变了,是因为里面的list为共享数据!

我们创建name的时候,python在内存里面的一个地址存入了name,并且name里的list也是会被分配一个地址
但是我们在进行copy操作的时候,我们原封不动的取了name的元素作为新的list,但是原来name里面的list地址还是指向原先的
内部list地址,所以后面我们在对name的内部list进行更改的时候,同样name1中的内部list也会受到影响!

我们利用python中的id方法来验证这点!
like$python3
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 5 2015, 21:12:44)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.

list1 = [1,2,[1,2,3]]
list2 = list1.copy()

id(list1)
4313896776
id(list2)
4313896456
id(list1[2])
4313896520
id(list2[2])
4313896520

深COPY

name = [‘alex’,’jack’,[1,2,3,34]]
name1 = name.deepcopy()
name1[0] = ‘ALEX’
name1[2][1] = 11111

则完全copy一份数据

import copy
list3 = copy.deepcopy(list1)
id(list3)
4314698952
id(list3[2])
4314754312

Sort()方法在Python2和Python3中的不同

Python3中不允许数字和字符串进行sort
Python2中是可以的,具体排序是按照对应的ASCII码进行排序,数字在前,字母在后

index()返回下标
count()返回数量
extend()拓展
append()追加

文章目录
  1. 1. List
,