zoukankan      html  css  js  c++  java
  • 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()函数立刻启动垃圾回收机制来释放内存。

  • 相关阅读:
    监控里的主码流和子码流是什么意思
    监控硬盘容量计算
    一个能让你了解所有函数调用顺序的Android库
    电工选线
    oracle linux dtrace
    list all of the Oracle 12c hidden undocumented parameters
    Oracle Extended Tracing
    window 驱动开发
    win7 x64 dtrace
    How to Use Dtrace Tracing Ruby Executing
  • 原文地址:https://www.cnblogs.com/avention/p/8520168.html
Copyright © 2011-2022 走看看