列表

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]
上一篇下一篇

猜你喜欢

热点阅读