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如何排序。

 

列表的复制

 

posted on 2019-08-19 16:13  Null_Bug  阅读(886)  评论(0编辑  收藏  举报

导航