列表
2019-04-29 本文已影响0人
举个简单的栗子
列表
列表概念
列表是由一系列特定顺序排列的元素组成的序列。
In [18]: a = [1,2,3,4,5,6]
In [19]: a
Out[19]: [1, 2, 3, 4, 5, 6]
创建列表的方式,可以使用 list()和 [] 生成
In [7]: empty_list = list()
In [8]: empty_list
Out[8]: []
In [11]: empty_list = []
In [12]: empty_list
Out[12]: []
列表操作
加法和乘法
In [13]: a = [1,2,3]
In [14]: a + [4,5,6]
Out[14]: [1, 2, 3, 4, 5, 6]
In [16]: a = [1,2,3]
In [17]: a * 3
Out[17]: [1, 2, 3, 1, 2, 3, 1, 2, 3]
索引和切片
index()方法返回元素所在的索引位置
In [20]: a = [1,2,3,4,5,6]
In [21]: a.index(4)
Out[21]: 3
返回前2个元素,不包含后以一个索引元素
In [22]: a = [1,2,3,4,5,6]
In [23]: a[0:2]
Out[23]: [1, 2]
两种效果是相同的
In [24]: a = [1,2,3,4,5,6]
In [25]: a[:2]
Out[25]: [1, 2]
返回所有元素
In [26]: a = [1,2,3,4,5,6]
In [27]: a[:]
Out[27]: [1, 2, 3, 4, 5, 6]
返回从某索引开始往后的所有元素,包含开始的索引
In [28]: a = [1,2,3,4,5,6]
In [29]: a[2:]
Out[29]: [3, 4, 5, 6]
返回最后2个元素
In [30]: a = [1,2,3,4,5,6]
In [31]: a[-2:]
Out[31]: [5, 6]
根据步长来返回元素,步长为2,每隔1个元素取一个
In [32]: a = [1,2,3,4,5,6]
In [33]: a[::2]
Out[33]: [1, 3, 5]
修改元素
In [34]: a = [1,2,3,4,5,6]
In [35]: a[1] = 'xy'
In [36]: a
Out[36]: [1, 'xy', 3, 4, 5, 6]
用相等的元素进行替换的方式进行修改
In [37]: a = [1,2,3,4,5,6]
In [38]: a[0:2] = ['x','y']
In [39]: a
Out[39]: ['x', 'y', 3, 4, 5, 6]
用多个元素来替换
In [37]: a = [1,2,3,4,5,6]
In [38]: a[0:2] = ['x','y','z']
In [39]: a
Out[39]: ['x', 'y','z', 3, 4, 5, 6]
删除元素
按照索引删除单个元素
In [41]: a = [1,2,3,4,5,6]
In [42]: del a[1]
In [43]: a
Out[43]: [1, 3, 4, 5, 6]
使用切片删除多个元素
In [45]: a = [1,2,3,4,5,6]
In [46]: del a[0:2]
In [47]: a
Out[47]: [3, 4, 5, 6]
删除间隔的元素
In [45]: a = [1,2,3,4,5,6]
In [46]: del a[::2]
In [47]: a
Out[47]: [2, 4, 6]
列表方法
len()方法
计算列表的长度
In [51]: a = [1,2,3,4,5,6,7,7,6,4]
In [52]: len(a)
Out[52]: 10
count()方法
该方法计算指定元素出现的次数
In [1]: a = [1,2,3,4,4,5,6]
In [2]: a.count(4)
Out[2]: 2
list.append(ob) 方法
将元素 ob 加在列表list的最后
In [3]: a = [1,2,3,4,5,6]
In [4]: a.append('yezi')
In [5]: a
Out[5]: [1, 2, 3, 4, 5, 6, 'yezi']
该方法每次只能添加一个元素,并不会因为是序列而展开
In [6]: a = [1,2,3,4,5,6]
...: a.append([11,12])
...: a
Out[6]: [1, 2, 3, 4, 5, 6, [11, 12]]
list.insert(x,ob) 方法
在列表索引x的位置上插入元素 ob ,先前索引位置上的元素要往后移
In [7]: a = [1,2,3,4,5,6]
...: a.insert(2,'xyz')
...: a
Out[7]: [1, 2, 'xyz', 3, 4, 5, 6]
list.remove(ob)方法
会将列表中第一个出现的 ob 删除,如果没有则会报错
In [8]: a = [1,2,3,4,5,6,7]
...: a.remove(4)
...: a
Out[8]: [1, 2, 3, 5, 6, 7]
In [12]: a = [1,2,3,4,5,6,7]
In [13]: a.remove(15)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-13-fc48c954ed56> in <module>
----> 1 a.remove(15)
ValueError: list.remove(x): x not in list
list.pop(idx) 方法
会将索引 idx 处的元素删除,并返回这个元素
In [14]: a = [1,2,3,4,5,6,]
In [15]: a.pop(3)
Out[15]: 4
list.sort()方法
方法sort()永久性的修改列表元素的排列顺序
In [16]: a = [3,2,1,4,5]
In [17]: a.sort()
In [18]: a
Out[18]: [1, 2, 3, 4, 5]
还可以使用相反的顺序进行排列,只需要对sort()方法传递参数 reverse=True
In [19]: a = [3,2,1,4,5]
In [20]: a.sort(reverse=True)
In [21]: a
Out[21]: [5, 4, 3, 2, 1]
sorted(list)方法
该方法可以对列表进行临时性排序,原来的列表不会有改变
In [22]: a = [3,2,1,4,5]
In [23]: print(sorted(a))
[1, 2, 3, 4, 5]
In [24]: a
Out[24]: [3, 2, 1, 4, 5]
list.reverse()方法
该方法可以反转列表元素的排列顺序
In [28]: a = [3,2,1,4,5]
In [29]: a.reverse()
In [30]: a
Out[30]: [5, 4, 1, 2, 3]
list1.extend(list2)方法
在一个列表之后追加另外一个列表
In [31]: a = [1,2,3]
In [32]: b = [4,5,6]
In [33]: a.extend(b)
In [34]: a
Out[34]: [1, 2, 3, 4, 5, 6]