2.1.1 列表创建与删除

Posted Avention

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.1.1 列表创建与删除相关的知识,希望对你有一定的参考价值。

  使用“=”直接将一个列表赋值给变量即可创建列表对象,例如:

1 >>> a_list = [a,b,mpilgrim,z,example]
2 >>> a_list = []            #创建空列表

 

  也可以使用list()函数将元组、range对象、字符串、字典集合或其他类型的可迭代对象类型的数据转换为列表。需要注意的是,把字典转换为列表时默认是将字典的“键”转换为列表,而不是把字典元素转换为列表,如果想把字典的元素转换为列表,需要使用字典对象的item()方法明确说明。例如:

 1 >>> a_list = list((3,5,7,9))                               #将元组转换为列表
 2 >>> a_list
 3 [3, 5, 7, 9]
 4 >>> 
 5 >>> list(range(1,20,2))                                    #将range对象转换为列表
 6 [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
 7 >>> 
 8 >>> list(hello world)                                    #将字符串转换为列表
 9 [h, e, l, l, o,  , w, o, r, l, d]
10 >>> 
11 >>> list({3,7,5})                                          #将集合转换为列表
12 [3, 5, 7]
13 >>> 
14 >>> list({a:3,b:9,c:78})                             #将字典的“键”转换为列表
15 [c, a, b]
16 >>> 
17 >>> list({a:3,b:9,c:78}.values())                    #将字典的“值”转换为列表
18 [78, 3, 9]
19 >>> 
20 >>> list({a:3,b:9,c:78}.items())                     #将字典的“键:值”对转换为列表
21 [(c, 78), (a, 3), (b, 9)]
22 >>> 
23 >>> x = list()                                             #创建空列表
24 >>> 

   

  在Python社区中,习惯把list()还有后面很快就会学到的tuple()、set()、dict()这样的函数称为“工厂函数”,因为这些函数可以生成新的数据类型。

  创建列表之后,可以使用整数作为下标来访问其中的元素,其中0表示第一个元素,1表示第2个元素,2表示第3个元素,以此类推;列表还支持使用负整数作为下标,其中-1表示左后1个元素,-2表示倒数第2个元素,以此类推,如下所示:

 1 >>> x = list(range(10))    #创建列表
 2 >>> import random
 3 >>> random.shuffle(x)      #把列表中的元素顺序打乱
 4 >>> x
 5 [7, 8, 3, 2, 9, 4, 6, 0, 1, 5]
 6 >>> 
 7 >>> x[0]                   #访问第1个元素
 8 7
 9 >>> x[1]                   #访问第2个元素
10 8
11 >>> 
12 >>> x[-1]                  #访问最后一个元素
13 5
14 >>> 

 

  正向索引            0            1            2             3              4            5            6                7             8                 9

              [7,     8,     3,     2,      9,     4,     6,       0,      1,       5]

  反向索引          -10          -9           -8           -7             -6           -5            -4              -3            -2               -1

 

  当一个列表不再使用时,可以使用del命令将其删除,这一点适用于所有类型的Python对象。另外,也可以使用del命令删除列表、字典等可变序列中的部分元素,而不能删除元组、字符串等不可变序列中的部分元素。例如:

 1 >>> x = [1,2,3]
 2 >>> 
 3 >>> del x[1]                        #删除列表中指定位置的元素,即索引为1的第2个元素
 4 >>> x
 5 [1, 3]
 6 >>> 
 7 >>> del x                            #删除列表对象
 8 >>> x
 9 Traceback (most recent call last):
10   File "<pyshell#19>", line 1, in <module>
11     x
12 NameError: name x is not defined
13 >>> 
14 >>> 
15 >>> x = {a:3,b:6,c:9}
16 >>> 
17 >>> del x[a]                        #删除字典中部分元素
18 >>> x
19 {b: 6, c: 9}
20 >>> 
21 >>> 
22 >>> x = (1,2,3)                       #创建元组对象
23 >>> del x[0]                          #不允许删除元组中的元素
24 Traceback (most recent call last):
25   File "<pyshell#29>", line 1, in <module>
26     del x[0]                          #不允许删除元组中的元素
27 TypeError: tuple object doesnt support item deletion
28 >>> 
29 >>> 
30 >>> x[0] = 4                          #也不能修改元组中的值,要不怎么叫不可变序列呢
31 Traceback (most recent call last):
32   File "<pyshell#33>", line 1, in <module>
33     x[0] = 4
34 TypeError: tuple object does not support item assignment
35 >>> 

 

  拓展知识:

    垃圾回收机制。一般来说,使用del删除对象之后Python会在恰当的时候调用垃圾回收机制来释放内存,我们也可以在必要的时候导入Python标准库gc之后调用gc.collect()函数立刻启动垃圾回收机制来释放内存。

 

以上是关于2.1.1 列表创建与删除的主要内容,如果未能解决你的问题,请参考以下文章

2.1.1 列表创建与删除

带有片段的标题栏与列表视图重叠

如何通过单击适配器类中代码的项目中的删除按钮来删除列表视图中的项目后重新加载片段?

多选模式列表视图行在删除后保持选中状态

相同的片段与不同选项卡上的列表视图

教程4 - 验证和权限