python List
列表List
列表中的元素是有顺序的,可以使用索引。列表是可变的,可以改变列表的内容。
列表的常用方法
列表查询
index(value,[start,[stop]])
通过值value,从指定区间查找列表内的元素是否匹配。匹配到第一个就立即返回索引;匹配不到,就抛出异常ValueError。
时间复杂度O(n)
>>> l=list(range(1,20,4))
>>> l
[1, 5, 9, 13, 17]
>>> l.index(9)
2
>>> l.index(5)
1
>>> l.index(8)
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
l.index(8)
ValueError: 8 is not in list
count(value)
返回列表中匹配Value的次数。时间复杂度O(n)
>>> l=list('hellopython') >>> l ['h', 'e', 'l', 'l', 'o', 'p', 'y', 't', 'h', 'o', 'n'] >>> l.count('o') 2 >>> l.count('r') 0
列表修改
索引访问修改
list[index]=value --索引不要越界
>>> l=list(range(5))
>>> l
[0, 1, 2, 3, 4]
>>> l[1]=10
>>> l
[0, 10, 2, 3, 4]
列表增加插入元素
append(Object)----None(没有返回值)
列表尾部追加元素,返回None。返回None就意味着没有新列表产生,就地修改。
时间复杂度O(n)。
>>> l=list(range(5)) >>> l [0, 1, 2, 3, 4] >>> l.append(5) >>> l [0, 1, 2, 3, 4, 5]
insert(index,object)--None
在指定索引index处插入object。超越上界,尾部追加。超越下界,头部追加。
--慎用,特别是大数据下,在第一位插入后,后面的数据都要挪动。
>>> l=list(range(1,5)) >>> l [1, 2, 3, 4] >>> l.insert(1,10) >>> l [1, 10, 2, 3, 4] >>> l.insert(8,100) >>> l [1, 10, 2, 3, 4, 100] >>> l.insert(-10,'hello') >>> l ['hello', 1, 10, 2, 3, 4, 100]
extend(iterable)---None
将可迭代对象的元素追加进来,返回None。就地修改。
>>> l [1, 10, 2, 3, 4, 100] >>> l.insert(-10,'hello') >>> l ['hello', 1, 10, 2, 3, 4, 100] >>> l.extend(range(10,20,4)) >>> l ['hello', 1, 10, 2, 3, 4, 100, 10, 14, 18]
+----list
产生新的列表,原列表不变
*---list
重复操作,将列表元素重复n次,返回新的列表。
列表删除元素
remove(value)---None
从左至右查找第一个匹配Value的值,就地修改。如果没有匹配上,抛出ValueError。---慎用
>>> l=list(range(5)) >>> l [0, 1, 2, 3, 4] >>> l.remove(3) >>> l [0, 1, 2, 4] >>> l.remove(10) Traceback (most recent call last): File "<pyshell#40>", line 1, in <module> l.remove(10) ValueError: list.remove(x): x not in list
pop([index])--item
不指定索引index,就从列表尾部弹出1个元素。指定index,就从索引处弹出1个元素。索引越界会抛出IndexError。
>>> l=list(range(5)) >>> l [0, 1, 2, 3, 4] >>> l.pop() 4 >>> l.pop(1) 1
clear()----None
清楚列表中的所有元素,剩下1个空列表。如果有N个元素,小心GC(垃圾回收)
列表的其他操作
reverse()----None
将列表元素反转,返回None.
sort(key=None,reverse=False)----None
对列表排序,就地修改,默认升序。reverse为True,反转,降序。
key是一个函数,指定key如何排序。
列表的复制
见