• python序列(一)列表的增加


     

    列表是python中内置有序可变序列,列表的所有元素放在一堆中括号"{}"中,并使用逗号隔开

    1.列表的创建

      使用“=”直接创建一个列表

    >>> x=[3,34]
    >>> x
    [3, 34]
    >>> x=[3,2,5,[56],[7,9]]
    >>> x
    [3, 2, 5, [56], [7, 9]]

      也可以使用list()函数将元组、range对象、字符串或其他类型的迭代对象类型的数据转换为列表。

    >>> a_list=list((3,5,7,9))
    >>> a_list
    [3, 5, 7, 9]
    >>> list (range(1,10,3))
    [1, 4, 7]
    >>> list('hello world')
    ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

    2.可以使用“+”运算符将元素添加到列表中。

    >>> a_list=[1,2,3]
    >>> a_list=a_list + [4]
    >>> a_list
    [1, 2, 3, 4]

    严格意义上这种方法是创建了一个新的列表,并将原列表中的元素和新元素依次复制到新列表的内存空间。

    3.append()方法,原地修改列表,是真正意义上的在列表尾部添加元素,速度较快。

    >>> a_list.append(9)
    >>> a_list
    [1, 2, 3, 4, 9]

    这个方法不改变列表在内存中的首地址。

    4.python采用的是基于值得自动内存管理方式,当为对象修改值时,并不是真的直接修改变量的值,而是使变量指向新的值,这对于python所有类型的变量都是一样的。

    >>> a=[1,2,3]
    >>> id(a)    #返回对象的内存地址
    2848185370368
    >>> a=[1,2]
    >>> id(a)
    2848185620032

    5.使用列表对象的extend()方法可以将另一个迭代对象的所有元素添加至该列表对象尾部。通过extend()方法来增加列表元素也不改变其内存首地址,属于原地操作。

    >>> a=[1,2,3]
    >>> id(a)
    2848185370368
    >>> a=[1,2]
    >>> id(a)
    2848185620032
    >>> a.extend([1,2,3])
    >>> a
    [1, 2, 1, 2, 3]
    >>> a_list.extend([21,31])
    >>> a_list
    [1, 2, 3, 4, 9, 21, 31]
    >>> a_list.extend([12,13])
    >>> a_list
    [1, 2, 3, 4, 9, 21, 31, 12, 13]
    >>> id(a)
    2848185620032

    6.使用列表对象的insert()方法将元素添加至列表的指定位置。

    >>> a_list.insert(9,11)
    >>> a_list
    [1, 2, 3, 4, 9, 21, 31, 12, 9, 11, 13]

    7.应尽量从列表尾部进行元素的增加与删除操作。

      列表的insert()可以在列表的任意位置插入元素,但由于列表的自动内存管理功能,insert()方法会涉及到插入位置之后所有元素的移动,这会影响处理速度。

      类似的还有后面介绍的remove()方法以及使用pop()函数弹出列表非尾部元素和使用del命令删除列表尾部元素的情况。

    8.使用乘法来扩展列表对象,将列表与整数相乘,生成一个新列表,新列表是元列表中元素的重复。

    >>> alist=[1,3,5]
    >>> blist=alist
    >>> id(alist)
    2848177708416>>> id(blist)
    2848177708416
    >>> alist=alist*3
    >>> alist
    [1, 3, 5, 1, 3, 5, 1, 3, 5]
    >>> blist
    [1, 3, 5]
    >>> id(alist)
    2848185306368
    >>> id(blist)
    2848177708416

    9.当使用*运算符将包含列表的列表重读并创建新列表是,并不创建元素的复制,而是创建已有对象的引用。因此,当修改其中一个值时,相应的引用也会被修改。

    >>> x=[[None]*2]*3
    >>> x
    [[None, None], [None, None], [None, None]]>>> x=[[1,2,3]]*4
    >>> x[0][0]=10
    >>> x
    [[10, 2, 3], [10, 2, 3], [10, 2, 3], [10, 2, 3]]
    >>> 
     
  • 相关阅读:
    lnmp之php5.6.29安装
    lnmp之mysql5.5.17安装
    利用xshell从windows上传文件到虚拟机
    linux命令
    tp中ueditor编辑器的使用
    Thinkphp 3.2.2 验证码check_verify方法,只能验证一次
    选学霸
    低价购买
    友好城市
    榨取kkksc03
  • 原文地址:https://www.cnblogs.com/wang-yongxu/p/12533471.html
Copyright © 2020-2023  润新知