初学python(六)List常用操作

python的list的用法其实有很多,这里就练习几个常用的吧。
这里是S的几个函数

Operation Result Notes
s[i] = x item i of s is replaced by x
s[i:j] = t slice of s from i to j is replaced by the contents of the iterable t
del s[i:j] same as s[i:j] = []
s[i:j:k] = t the elements of s[i:j:k] are replaced by those of t -1
del s[i:j:k] removes the elements of s[i:j:k] from the list
s.append(x) appends x to the end of the sequence (same as s[len(s):len(s)] = [x])
s.clear() removes all items from s (same as del s[:]) -5
s.copy() creates a shallow copy of s (same as s[:]) -5
s.extend(t) extends s with the contents of t (same as s[len(s):len(s)] = t)
s.insert(i, x) inserts x into s at the index given by i (same as s[i:i] = [x])
s.pop([i]) retrieves the item at i and also removes it from s -2
s.remove(x) remove the first item from s where s[i] == x -3
s.reverse() reverses the items of s in place -4

好像找到中文版了,补充一下哈:

方法 描述
list.append(x) 把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。
list.extend(L) 通过添加指定列表的所有元素来扩充列表,相当于 a[len(a):] = L。
list.insert(i, x) 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。
list.remove(x) 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。
list.pop([i]) 从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被删除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在 Python 库参考手册中遇到这样的标记。)
list.clear() 移除列表中的所有项,等于del a[:]。
list.index(x) 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
list.count(x) 返回 x 在列表中出现的次数。
list.sort() 对列表中的元素进行排序。
list.reverse() 倒排列表中的元素。
list.copy() 返回列表的浅复制,等于a[:]。

接下来是我的测试:

定义

>>> list = ['a','b','c','d']
>>> list
['a', 'b', 'c', 'd']

索引

>>> list[0]
'a'
>>> list[-1]
'd'
>>> list[1:3]    #获取[1,3)区间的元素
['b', 'c']

追加和插入

>>> list.append('e')    #尾部追加
>>> list
['a', 'b', 'c', 'd', 'e']
>>> list.insert(1,'a2')    #下标插入
>>> list
['a', 'a2', 'b', 'c', 'd', 'e']
>>> list.extend(['f','g','h'])    #尾部追加list
>>> list
['a', 'a2', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

检索

>>> list.index('a2')
1
>>> 'b2' in list
False

运算符

>>> list += ['i','j']
>>> list
['a', 'a2', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
>>> list = ['a','b']*3
>>> list
['a', 'b', 'a', 'b', 'a', 'b']

join用法

>>> params ={'one':'first','two':'twice','three':'third'}
>>> ['%s=%s' % (k,v) for k,v in params.items()]
['three=third', 'one=first', 'two=twice']
>>> list = '&&'.join(['%s=%s' % (k,v) for k,v in params.items()])
>>> list
'three=third&&one=first&&two=twice'

分割

>>> list.split('&&')
['three=third', 'one=first', 'two=twice']
>>> list.split('&&',1)    #第二个参数为分割次数
['three=third', 'one=first&&two=twice']

映射和过滤

>>> list = [1,2,3,4]
>>> list = [elem*2 for elem in list]
>>> list
[2, 4, 6, 8]
>>> list = [elem for elem in list if elem >2]
>>> list
[4, 6, 8]
>>> list = [1,2,3,4,5,6,1,1,2,3,4]
>>> list
[1, 2, 3, 4, 5, 6, 1, 1, 2, 3, 4]
>>> list = [elem for elem in list if list.count(elem) > 1]
>>> list
[1, 2, 3, 4, 1, 1, 2, 3, 4]

删除操作

>>> list.remove(1)    #删除首次出现的值
>>> list
[2, 3, 4, 1, 1, 2, 3, 4]
>>> list.pop()    #删除尾部元素,并且返回
4
>>> list
[2, 3, 4, 1, 1, 2, 3]