zoukankan      html  css  js  c++  java
  • Python 列表操作

    列表list

    一个队里,一个排列整齐的队伍

    列表内的个体称作元素,由若干元素组成列表

    元素可以是任意对象(数字,字符串,对象,列表等)

    列表内元素有顺序,可以使用索引

    线性的数据结构

    使用 [] 表示

    列表是可变的

    列表 list 定义,初始化

    list()  # 定义一个空列表

    list(iterable)  # 从一个可迭代的对象初始化列表

    列表不能一开始就定义大小 

    列表的查

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    print(a[1:4])
    结果:
    ['tom', 'jack', 'james']

    注意:列表的切片的下标以 0 为开始。即: 下标0 --> klvchen,下标1 --> tom,..... 下标5 --> lucy。

              列表的切换顾头不顾尾,例如:a [1:4],则不会取到列表下标为4的元素

    从左到右,取到最后:

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    print(a[1:])

    结果:
    ['tom', 'jack', 'james', 'lily', 'lucy']

    从左到右,取到倒数第二个值:

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    print(a[1:-1])
    结果:
    ['tom', 'jack', 'james', 'lily']

    从左到右,隔一个去取:

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    print(a[1::2])
    结果:
    ['tom', 'james', 'lucy']

    从右到左,一个一个去取:

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    print(a[3::-1])
    结果:
    ['james', 'jack', 'tom', 'klvchen']

    从右到左去取

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    print(a[-2:-4:-1])
    结果:
    ['lily', 'james']

    列表的增

    append 方法默认插到最后一个位置

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    a.append("mary")
    print(a)
    结果:
    ['klvchen', 'tom', 'jack', 'james', 'lily', 'lucy', 'mary']

    insert 方法将数据插入到任意一个位置

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    a.insert(1,"mary")
    print(a)
    结果:
    ['klvchen', 'mary', 'tom', 'jack', 'james', 'lily', 'lucy']

    extend 方法可在列表的末尾一次性追加另一个序列中的多个值

    a = ["klvchen", "tom", "jack"]
    b = ["james", "lily", "lucy"]
    a.extend(b)
    print(a)
    结果:
    ['klvchen', 'tom', 'jack', 'james', 'lily', 'lucy']

    *,重复操作,将本列表表示元素重复 n 次,返回新的列表

    list1 = [1, 2, 3]
    list2 = list1 * 2
    print(list2)
    结果:
    [1, 2, 3, 1, 2, 3]

    +,连接操作,将两个列表连接起来,产生新的列表,原列表不变

    list3 = [4, 5, 6]
    list4 = list1 + list3
    print(list4)
    结果:

    [1, 2, 3, 4, 5, 6]

    列表的改

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    a[1]="tom2"
    print(a)
    结果:
    ['klvchen', 'tom2', 'jack', 'james', 'lily', 'lucy']
    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    a[1:3]=["tom2", "jack2"]
    print(a)
    结果:
    ['klvchen', 'tom2', 'jack2', 'james', 'lily', 'lucy']

    列表的删

    remove 方法

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    a.remove("tom")
    print(a)
    结果:
    ['klvchen', 'jack', 'james', 'lily', 'lucy']

    pop 方法

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    b = a.pop(1)
    print(a)
    print(b)
    结果:
    ['klvchen', 'jack', 'james', 'lily', 'lucy']
    tom

    注意 pop 方法会返回删除的元素

     

    del 方法

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    del a[1]
    print(a)
    结果:
    ['klvchen', 'jack', 'james', 'lily', 'lucy']
    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    del a
    print(a)
    结果:
    NameError: name 'a' is not defined

    注意:del a 把列表a从内存删除了,所以打印 a 列表程序会报错

    clear()

    清除列表所有元素,剩下一个空列表 

    列表元素的统计

    list = ['a', 'a', 'b', 'c']
    res = list.count('a')
    print(res)
    结果:
    2

    列表复制

     copy() 

    shadow copy 影子拷贝,也叫浅拷贝,遇到引用类型,只是复制了一个引用而已,返回一个新的列表

    lst0 = list(range(4))
    lst1 = lst0.copy()
    print(lst0 == lst1)  # 判断 lst0 的元素和 lst1 的元素是否一样
    print(lst1 is lst0)  # 判断 lst0, lst1 的内存地址是否一样

    结果:

    True
    False

     深拷贝

    copy 模块提供了 deepcopy

    import copy

    lst0 = [1, [2, 3, 4], 5]

    lst5 = copy.deepcopy(lst0)

    lst5[1][1] = 20

    print(lst5 == lst0)


    False

    列表的排序

    sort 方法

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    print(a)
    a.sort()
    print(a)
    结果:
    ['klvchen', 'tom', 'jack', 'james', 'lily', 'lucy']
    ['jack', 'james', 'klvchen', 'lily', 'lucy', 'tom']

    reverse 方法

    a = ["klvchen", "tom", "jack", "james", "lily", "lucy"]
    print(a)
    a.reverse()
    print(a)
    结果:
    ['klvchen', 'tom', 'jack', 'james', 'lily', 'lucy']
    ['lucy', 'lily', 'james', 'jack', 'tom', 'klvchen']
  • 相关阅读:
    在Cortex-M系列上如何准确地做us级延时?
    [嵌入式开发]Linux性能分析——上下文切换
    cnless.sh:改进版less,可自动识别GBK编码或UTF-8编码。
    PuTTY配置
    LINUX内核笔记:自旋锁
    Vue的父子组件间通信及借助$emit和$on解除父子级通信的耦合度高的问题
    elementUi中input输入字符光标在输入一个字符后,光标失去焦点
    elementUi中的计数器ele-mumber中的change事件传参及事件调用
    如何使用git拉取代码及提交代码(详细)
    git 拉取远程代码
  • 原文地址:https://www.cnblogs.com/klvchen/p/8567890.html
Copyright © 2011-2022 走看看