zoukankan      html  css  js  c++  java
  • Python核心数据类型——列表

    列表

    列表是任意对象的有序集合。也就是说,其元素可以是任何类型的对象。有序指的是,有严格的从左到右的顺序,这一点不同于字典,可以通过偏移读取,支持在原处修改,长度可变,是可变的类型。

    1.  常用的列表操作

    >>> L1 = []
    >>> 
    >>> L2 = [0, 1, 2]
    >>> 
    >>> L3 = [0, 'a', [1, 2]]
    >>> 
    >>> L4 = list('34')    #['3', '4']
    >>> 
    >>> L5 = range(5)      #range(n),当n>0时生成0~(n-1)的列表,n<=0时为[]
    >>> L5
    [0, 1, 2, 3, 4]
    >>>
    >>> L6 = range(2,5)
    >>> L6
    [2, 3, 4]
    >>>
    >>> L1 + L2           #合并
    [0, 1, 2]
    >>> 
    >>> L2 * 3            #重复
    [0, 1, 2, 0, 1, 2, 0, 1, 2]
    >>> 
    >>> L2.reverse()  #反转
    >>> L2
    [2, 1, 0]
    >>> L2.sort()       #排序
    >>> L2
    [0, 1, 2]
    >>> L2.index(1)       #元素1所在的下标
    1
    >>> L2.pop()          #删除最后一个元素,并返回该元素的值
    2
    >>> L2.pop(0)         #删除下标为0的元素,并返回该元素的值
    0
    >>> L1.extend([4, 5, 6])   #在末端添加列表元素
    >>>
    >>> del L1[0]              #删除下标为0的元素
    >>>
    >>> del L1[1:]
    >>>
    >>> L4.append('5')   #在末端添加元素
    >>>
    >>> L4.insert(1, '6')  #在下标为1处添加元素
    >>> L4
    ['3', '6', '4', '5']
    >>> L4[1:] = ['a']       #对列表的分片赋值
    >>> L4
    ['3', 'a']
    >>> L4[1:] = []        #将分片赋值为空,来达到删除的目的
    >>> L4
    ['3']

    2.  列表可以作为数组

    >>> L1 = ['a', 'b', 'c']   #一维数组
    >>> L1
    ['a', 'b', 'c']
    >>> L2 = [[1, 2, 3],       #二维数组
    ...       [4, 5, 6],
    ...       [7, 8, 9]]
    >>> L2
    [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    >>>
    >>> L2[0][1]             #通过下标来访问二维数组
    2
    

    3. 列表解析

    列表解析是一种通过在一个序列中运行一个表达式而创建一个新的列表,需要使用方括号。列表继续可以嵌套任意数目的for语句,每个for语句都可以结合一个可选的if。

    其基本形式是:[操作 迭代 (判断) 迭代 (判断)...],括号表示可选

    >>> [c * 2 for c in 'spam']
    ['ss', 'pp', 'aa', 'mm']
    
    >>> L1 = ['1', '2', '3']
    >>> L2 = ['a', 'b', 'c']
    >>> [x + y for x in L1 for y in L2]
    ['1a', '1b', '1c', '2a', '2b', '2c', '3a', '3b', '3c']
    >>> [x + y for x in L1 if x == '3' for y in L2 if y == 'c']
    ['3c']
    

    4. 列表的方法

    查找

    a = ['1','2','3','1']

    a.index('1')返回0,index方法返回第1个匹配的元素的下标

     

  • 相关阅读:
    洛谷P1072 Hankson 的趣味题(题解)
    18.3.19晚听韩明睿大佬讲题收获
    题解+新技巧--一本通1282:最大子矩阵
    题解-洛谷P1303 A*B Problem(高精)
    Java重载和覆盖
    propagation属性的7个传播行为
    脏读、不可重复读、幻读
    RSA 数据加密和数字签名算法
    大型互联网站解决高并发的常见策略
    死锁和活锁
  • 原文地址:https://www.cnblogs.com/restran/p/2264893.html
Copyright © 2011-2022 走看看