• 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 doesn't 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()函数立刻启动垃圾回收机制来释放内存。

  • 相关阅读:
    安卓开发之ListAdapter(二)
    两listview联动
    不要天真了,这些简历HR一看就知道你是培训的,质量不佳的那种
    天真!这简历一看就是包装过的
    一线城市为何难逃离,职场饭局正在“失宠”?
    腾讯架构师分享的Java程序员需要突破的技术要点
    百度最穷程序员现身,工作4年晒出存款后,网友:你是真穷!
    震惊微软!招程序员的流程居然...
    python基础认识(一)
    input修改placeholder文字颜色
  • 原文地址:https://www.cnblogs.com/avention/p/8520168.html
Copyright © 2020-2023  润新知