美文网首页python基础
09、python list(列表)

09、python list(列表)

作者: vannesspeng | 来源:发表于2018-12-04 14:14 被阅读100次

    List(列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组,专门用于存储 一串 信息,列表用 [] 定义,数据 之间使用 , 分隔,列表的 索引 从 0 开始。

    索引 就是数据在 列表 中的位置编号,索引 又可以被称为 下标
    注意:从列表中取值时,如果 超出索引范围,程序会报错

    name_list = ["zhangsan", "lisi", "wangwu"]


    List数据结构分析

    访问列表中的值

    使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:

    #!/usr/bin/python3
     
    list1 = ['Google', 'Runoob', 1997, 2000];
    list2 = [1, 2, 3, 4, 5, 6, 7 ];
     
    print ("list1[0]: ", list1[0])
    print ("list2[1:5]: ", list2[1:5])
    

    以上实例输出结果:

    list1[0]: Google
    list2[1:5]: [2, 3, 4, 5]

    更新列表

    你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:

    #!/usr/bin/python3
     
    list = ['Google', 'Runoob', 1997, 2000]
     
    print ("第三个元素为 : ", list[2])
    list[2] = 2001
    print ("更新后的第三个元素为 : ", list[2])
    

    注意:我们会在接下来的章节讨论append()方法的使用
    以上实例输出结果:

    第三个元素为 : 1997
    更新后的第三个元素为 : 2001

    删除列表元素

    可以使用 del 语句来删除列表的的元素,如下实例:

    #!/usr/bin/python3
     
    list = ['Google', 'Runoob', 1997, 2000]
     
    print ("原始列表 : ", list)
    del list[2]
    print ("删除第三个元素 : ", list)
    

    以上实例输出结果:

    原始列表 : ['Google', 'Runoob', 1997, 2000]
    删除第三个元素 : ['Google', 'Runoob', 2000]

    注意:我们会在接下来的章节讨论 remove() 方法的使用


    Python列表脚本操作符

    列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
    如下所示:

    python表达式 结果 描述
    len([1, 2, 3]) 3 长度
    [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
    ['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
    3 in [1, 2, 3] True 元素是否存在于列表中
    for x in [1, 2, 3]: print(x, end=" ") 123 迭代

    Python列表截取(切片)与拼接

    list取值的一种方式, 取值是顾头不顾尾,注:切片的步长默认为1,不可为0
    Python的列表截取与字符串操作类型,如下所示:

    L=['Google', 'Runoob', 'Taobao', 'JingDong']

    操作:

    python表达式 结果 描述
    L[2]) 'Taobao' 读取第三个元素
    L[-2] 'Taobao' 从右侧开始读取倒数第二个元素: count from the right
    L[1:] ['Runoob', 'Taobao', 'JingDong'] 从第二个元素开始后的所有元素(下标则是1、2、3)
    L[1:3] ['Runoob', 'Taobao'] 从第二个元素开始,取到第四个元素(下标则是1、2)
    L[:3] ['Google', 'Runoob', 'Taobao'] 从第一个元素开始,取到第三个元素(下标则是0、1、2)
    L[1:4:2] ['Runoob', 'JingDong'] 从第二个元素开始后的所有元素(下标则是1、2、3)
    L[::-1] ['JingDong', 'TaoBao', 'Runoob', 'Google'] 切片步长为负数,从后面往前面取值,相当于翻转了
    L[1:4:-1] [] 步长为负数,前面为正数的,取出来为空
    >>>L=['Google', 'Runoob', 'Taobao']
    >>> L[2]
    'Taobao'
    >>> L[-2]
    'Runoob'
    >>> L[1:]
    ['Runoob', 'Taobao']
    >>>
    

    列表还支持拼接操作:

    >>>squares = [1, 4, 9, 16, 25]
    >>> squares += [36, 49, 64, 81, 100]
    >>> squares
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    >>>
    

    嵌套列表

    使用嵌套列表即在列表里创建其它列表,例如:

    >>>a = ['a', 'b', 'c']
    >>> n = [1, 2, 3]
    >>> x = [a, n]
    >>> x
    [['a', 'b', 'c'], [1, 2, 3]]
    >>> x[0]
    ['a', 'b', 'c']
    >>> x[0][1]
    'b'
    

    Python列表函数&方法

    Python包含以下函数:

    函数 描述
    len(list) 列表元素个数
    max(list) 返回列表中的最大值
    min(list) 返回列表中的最小值
    list(seq) 将元组转换为列表

    Python包含以下方法:

    方法 描述
    list.append(obj) 在列表末尾添加新的对象
    list.count(obj) 统计某个元素在列表中出现的次数
    list.extends(obj) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
    list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
    list.insert(index, obj) 将对象插入列表
    list.pop(index) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
    list.remove(obj) 移除列表中某个值的第一个匹配项
    list.reverse() 反向列表中元素
    list.sort(cmp=Null, key=None, reverse=None) 对原列表进行排序
    list.clear() 清空列表
    list.copy() 复制列表

    补充:列表推导式

    1、列表推导式书写形式:  
    [表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]

    实例:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    li = [1,2,3,4,5,6,7,8,9]
    print [x**2 for x in li]
    
    print [x**2 for x in li if x>5]
    
    print dict([(x,x*10) for x in li])
    
    
    print  [ (x, y) for x in range(10) if x % 2 if x > 3 for y in range(10) if y > 7 if y != 8 ]
    
    vec=[2,4,6]
    vec2=[4,3,-9]
    sq = [vec[i]+vec2[i] for i in range(len(vec))]
    print sq
    
    print [x*y for x in [1,2,3] for y in  [1,2,3]]
    
    testList = [1,2,3,4]
    def mul2(x):
        return x*2
    print [mul2(i) for i in testList]
    

    输出结果:

    [1, 4, 9, 16, 25, 36, 49, 64, 81]
    [36, 49, 64, 81]
    {1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60, 7: 70, 8: 80, 9: 90}
    [(5, 9), (7, 9), (9, 9)]
    [6, 7, -3]
    [1, 2, 3, 2, 4, 6, 3, 6, 9]
    [2, 4, 6, 8]

    2 、使用()生成generator

    将俩表推导式的[]改成()即可得到生成器。

    multiples = (i for i in range(30) if i % 3 is 0)
    print(type(multiples))
    #  Output: <type 'generator'>
    

    相关文章

      网友评论

        本文标题:09、python list(列表)

        本文链接:https://www.haomeiwen.com/subject/tsuxcqtx.html