• python基本数据类型之列表list


    list的基本功能

    • 结果类型  中括号括起来
    • 逗号(,)分割每一个元素
    • 列表中的元素可以是数字,字符串,列表,布尔值所有的都能放
    • 索引,切片
    1
    2
    3
    li = [1, 3, 5, "jianer", ["病毒尖儿",18],"cat"]
    print(li[1])              # 索引取值
    print(li[2:4])            # 切片取值(切片的结果也是列表)
    • 支持for循环
    1
    li = [1, 3, 5, "jianer", ["病毒尖儿",18],"cat"]<br>for item in li:           # for循环列表<br>  print(item)
    • 支持while循环
    • 索引删除,切片删除
    1
    2
    3
    4
    5
    li = [1, 3, 5, "jianer", ["病毒尖儿",18],"cat"]
    del li[0]                 # 索引删除
    print(li)
    del li[0:3]               # 切片删除
    print(li)
    • 索引修改,切片修改
    1
    2
    3
    4
    5
    li = [1, 3, 5, "jianer", ["病毒尖儿",18],"cat"]
    li[0] = 88                # 索引修改
    print(li)
    li[0:3] = 7,8,9           # 切片修改
    print(li)
    • in操作
    1
    2
    3
    li = [1, 3, 5, "jianer", ["病毒尖儿",18],"cat"]
    v = 3 in(li)              # in操作
    print(v)
    • 索引找值
    1
    2
    3
    li = [1, 3, 5, "jianer", ["病毒尖儿",18],"cat"]
    v = li[4][0][2]          # 索引找并打印 
    print(v)

    转换

    • 列表转换成字符串
    • 需要自己写for循环一个一个处理:既有数字又有字符串
    • 直接使用字符串join方法:只有字符串

    list的方法(魔法)

    • 需要记忆的魔法有:append(追加),extend(扩展),insert(插入)

      append  原来值最后追加,数字,字符,列表都可以进行追加

    1
    2
    3
    li = [6,8,7,5,8]
    li.append(2)                # 追加再最后 原来值再后面追加,因此不用赋予新的值
    print(li)

        clear     清空列表

    1
    2
    3
    li = [6,8,7,5,8]
    li.clear()                  # 清空列表
    print(li)

        copy   拷贝(浅拷贝)

    1
    2
    3
    li = [6,8,7,5,8]
    v = li.copy()               # 拷贝,浅拷贝
    print(li)

      count    计数(计算元素出现的次数)

    1
    2
    3
    li = [6,8,7,5,8]
    v = li.count(8)             # 计算元素出现的次数
    print(v)

      extend  扩展原列表,参数可迭代对象(数字不能扩展,数字不可迭代)

    1
    2
    3
    li = [6,8,7,5,8]
    li.extend("b")              # 扩展追加。
    print(li)

      index   根据值获取值的指引位置

    1
    2
    3
    li = [6,8,7,5,8]
    v = li.index(8)             # 根据值获取值的索引位置
    print(v)<br><br>1                 重复字符,获取最左边位置,便不再寻找

      insert   插入,也可以根据指引位置插入元素

    1
    2
    3
    li = [6,8,7,5,8]
    li.insert(2,"b")       # 前面参数指定索引,逗号分隔,加要插入的元素
    print(li)

      pop    可索引删除某个值,无索引则默认删除最后一个值,赋予一个值也可以获得被删除的值

    1
    2
    3
    4
    li = [6,8,7,5,8]
    v = li.pop(2)               # 指定索引删除,无索引则默认删除最后一个值,也可以获取删除的值
    print(li)
    print(v)

      remove  删除列表指定值,左边优先

    1
    2
    3
    li = [6,8,7,5,8]
    li.remove(8)                # 删除列表指定值,从左优先
    print(li)

      reverse  将当前列表进行反转

    1
    2
    3
    li = [6,8,7,5,8]
    li.reverse()                # 将当前列表进行反转
    print(li)

      sort    排序,有秩序的排序。

    1
    2
    3
    li = [6,8,7,5,8]
    li.sort(reverse=True)      # 当反转正确,则从大到小排序
    print(li)

    列表推导式

      列表推导式提供了从序列创建列表的简单途径。通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。

      每个列表推导式都在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。如果希望表达式推导出一个元组,就必须使用括号。

    1 vec = [2,4,6]
    2 go = [3*x for x in vec]
    3 print(go)
    4 
    5 [6, 12, 18]     # 这里我们将每个数据乘以三,获取一个新列表
    1 freshfruit = ['  banana', '  loganberry ', 'passion fruit  ']
    2 go = [weapon.strip() for weapon in freshfruit]
    3 print(go)
    4 
    5 ['banana', 'loganberry', 'passion fruit'] #对序列每个元素逐个调用方法

       也可以用if子句作过滤

    1 vec = [2,4,6]
    2 go = [x for x in vec if x >3]
    3 print(go)
    4 
    5 [4, 6]

      其它一些示例

    1 >>> vec1 = [2, 4, 6]
    2 >>> vec2 = [4, 3, -9]
    3 >>> [x*y for x in vec1 for y in vec2]
    4 [8, 6, -18, 16, 12, -36, 24, 18, -54]
    5 >>> [x+y for x in vec1 for y in vec2]
    6 [6, 5, -7, 8, 7, -5, 10, 9, -3]
    7 >>> [vec1[i]*vec2[i] for i in range(len(vec1))]
    8 [8, 12, -54]
    其它示例
  • 相关阅读:
    Web实现大文件分片上传的方法
    kinova环境配置
    c++ stl list
    echarts饼图
    js函数
    飞浆测试日志
    IfcRevolvedAreaSolidTapered
    matlab一元二次方程求根
    运行日志
    常用的sql
  • 原文地址:https://www.cnblogs.com/caodneg7/p/10152525.html
Copyright © 2020-2023  润新知