美文网首页Python
Python数据类型_列表类型

Python数据类型_列表类型

作者: xilifeng | 来源:发表于2020-07-25 21:54 被阅读0次

    列表类型转换

    res = list("hello")  # 能被for循环的类型均可作list类型转换,字符串,列表,字典
    

    列表类型的常用操作

    按索引存取值(正向存取+反向存取):可取可改

    l = [11, 22, 33]
    print(l[-1])
    l[0] = 44
    print(l)
    

    切片 是复制原列表的索引, 不改原列表中的值

    l = [11, 22, 33, 44, 55]
    res = l[0:4:2]  # l[头:尾:步长]顾头不顾尾, 不是改原值, 是产生新值
    res1 = l[:]  # 复制原列表l的索引, 产生一份新的索引, 所以新列表res1的id会改变
    res1[4] = [66, 77]  # 改变4号位的值, 列表res1的索引位置没变, 所以id不变
    
    src_l = [11, 22, [33, 44]]  # 列表中[0]和[1]是不可变类型, 浅拷贝和深拷贝一样
    dst_l = src_l[:]  # 复制原列表的索引, 浅拷贝, 等同 dst_l = src_l.copy()
    dst_l[2][0] = 666  # 更改了和原列表共享的值, 新老列表[2][0]位置的值一起改变, 因为是浅拷贝
    
    src_l = [11, 22, [33, 44]]  # 深拷贝示例
    from copy import deepcopy  # 列表中含可变类型, 要不影响原列表中可变类型的数据, 须深拷贝
    
    dst_l = deepcopy(src_l)  # 深拷贝, 每一层遇到可变类型会造一个新列表
    dst_l[2][0] = 666  # 因为深拷贝, 新老列表[2][0]位置的值一起改变
    

    长度

    src_l = [11, 22, [33, 44]]
    print(len(src_l))  # 3
    

    成员运算in 和 not in

    l = [11, 22, [33, 44]]
    print([44, 33] in l)  # False
    print(33 in l)  # False
    

    成员运算in 和 not in示例: 去重

    infos = [
        {"name": "felix", "age": 20},
        {"name": "jack", "age": 21},
        {"name": "felix", "age": 20}
    ]
    l = []
    for info in infos:
        if info not in l:
            l.append(info)
    print(l)
    

    内置方法: append 追加到末尾,改变原列表, 不是产生新列表, 没有返回值, 所以不能赋值给新变量

    l = [11, 22, 33]
    l.append(44)
    print(l)
    

    内置方法: insert 插入到指定索引位置

    l = [11, 22, 33]
    l.insert(0, "aa")
    print(l)
    

    内置方法: extend 批量追加

    l = [1, 2, 3]
    names = ["jack", "felix", "tom"]
    l.extend(names)
    print(l)
    

    内置方法: count, index, clear

    names = ["jack", "felix", "tom"]
    res = names.count("felix")  # 统计出现次数
    res = names.index("felix", 0, 2)  # 找不到就报错, 列表没有find
    names.clear()  # 清空列表, 没有返回值, 不能赋值
    names.reverse()  # 直接把原列表翻转, 和切片names[::-1]不同, 切片是复制一份到新值, 没有返回值
    
    l = [-5, 1.1, 0, 10]
    l.sort()  # 列表中只能是数字,才能用sort从小到大排列
    l.sort(reverse=True)  # 从大到小排
    

    内置方法: 删除

    names = ["jack", "felix", "tom"]
    

    方式1: 万能删除, 是语句, 没有返回值, 不能赋值, 单纯删

    del names[0]
    

    方式2: remove指定元素删除, 没有返回值, 不能赋值, 单纯删

    names.remove("tom")
    

    方式3: pop指定索引删除, 由返回值, 剪切走

    res = names.pop(0)
    print(res)
    

    相关文章

      网友评论

        本文标题:Python数据类型_列表类型

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