• 006 列表的常用方法


    查看

    • dir(list): 列出 list 的方法
    • help(list): 查看开发者对 list 方法所编写的详细描述文档
      • help(list.append) 可以仅查看 append() 的用法

    append()

    >>> a = [0, 1, 2, 3]
    >>> a.append(4)
    >>> a
    [0, 1, 2, 3, 4]
    >>> a.append(5, 6)
    Traceback (most recent call last):
      File "<pyshell#3>", line 1, in <module>
        a.append(5, 6)
    TypeError: append() takes exactly one argument (2 given)
    >>> 
    

    说明

    • 在原列表的基础上直接操作
    • append() 会返回一个 None
    • append() 仅能在列表末尾追加一个数据,多加报错

    extend()

    >>> a = [0, 1, 2, 3]
    >>> a.extend(4)
    Traceback (most recent call last):
      File "<pyshell#1>", line 1, in <module>
        a.extend(4)
    TypeError: 'int' object is not iterable
    >>> a.extend([4])
    >>> a
    [0, 1, 2, 3, 4]
    >>> a.extend([5, 6])
    >>> a
    [0, 1, 2, 3, 4, 5, 6]
    >>> a.extend("york")
    [0, 1, 2, 3, 4, 5, 6, 'y', 'o', 'r', 'k']
    >>> 
    

    说明

    • 在原列表的基础上直接操作
    • extend() 是向列表追加一个可迭代的数据

    insert()

    >>> a = [0, 1, 2, 3]
    >>> a.insert(3, "York")
    >>> a
    [0, 1, 2, 'York', 3]
    >>> a.insert(10, "Fish")  # 索引超标,当作 append()
    >>> a
    [0, 1, 2, 'York', 3, 'Fish']
    >>> 
    

    说明

    • 在原列表的基础上直接操作
    • insert() 与插队一个效果,就是把目标值插到目标索引
    index: 0 1 2  3 4
    num:   9 8 7  5 4    a.insert(3, 66)
                /       => 9 8 7 66 5 4
                66
    

    pop()

    >>> a = [0, 1, 2, 3]
    >>> a.pop()  # 弹末尾
    3
    >>> a
    [0, 1, 2]
    >>> a.pop(0)  # 按索引弹
    0
    >>> a
    [1, 2]
    >>> a.pop(10)  # 索引超标,抛出异常
    Traceback (most recent call last):
      File "<pyshell#5>", line 1, in <module>
        a.pop(10)
    IndexError: pop index out of range
    >>> 
    

    说明

    • 在原列表的基础上直接操作

    remove()

    >>> a = [1, 2, 3, 2, 1]
    >>> a.remove(2)
    >>> a
    [1, 3, 2, 1]
    >>> a.remove(10)
    Traceback (most recent call last):
      File "<pyshell#3>", line 1, in <module>
        a.remove(10)
    ValueError: list.remove(x): x not in list
    >>> 
    

    说明

    • 在原列表的基础上直接操作
    • 从头遍历,移除第一个
    • 没有找到,抛出异常

    clear()

    >>> a = [0, 1, 2, 3]
    >>> a.clear()
    >>> a
    []
    >>> 
    

    del

    >>> a = [0, 1, 2, 3]
    >>> del a
    >>> a
    Traceback (most recent call last):
      File "<pyshell#2>", line 1, in <module>
        a
    NameError: name 'a' is not defined
    >>> 
    

    reverse()

    >>> a = [0, 1, 2, 3]
    >>> a.reverse()
    >>> a
    [3, 2, 1, 0]
    >>> 
    

    sort()

    >>> a = [1, 3, 5, 2, 4, 6]
    >>> a.sort()
    >>> a
    [1, 2, 3, 4, 5, 6]
    >>> a.sort(reverse=True)
    >>> a
    [6, 5, 4, 3, 2, 1]
    >>> 
    

    count()

    >>> a = [1, 2, 3, 2, 1]
    >>> a.count(1)
    2
    >>> 
    

    len()

    >>> a = [1, 2, 3, 4, 5]
    >>> len(a)
    5
    >>> 
    

    说明

    • len(list)O(1) 的,不像 C 那样每次都要重新遍历,因为 list 有块记录长度的空间

    index()

    >>> a = ['1', '2', '3', '2', '1']
    >>> a.index('2')
    1
    >>> a.index('2', 2)
    3
    >>> a.index('5')
    Traceback (most recent call last):
      File "<pyshell#3>", line 1, in <module>
        a.index('5')
    ValueError: '5' is not in list
    >>> 
    

    copy()

    >>> a = [0, 1, 2, 3]
    >>> b = a.copy()
    >>> id(a)
    2113228704064
    >>> id(b)
    2113228640128
    >>> a[0] = 10
    >>> a
    [10, 1, 2, 3]
    >>> b
    [0, 1, 2, 3]
    >>> 
    >>> c = [0, 1, [2, 3]]
    >>> d = a.copy()
    >>> c[2][0] = 20
    >>> c
    [0, 1, [20, 3]]
    >>> d
    [0, 1, [20, 3]]
    >>> 
    

    说明

    • copy() 只能管第一层
    • 若想“深拷贝”,需要 from copy import deepcopy, b = deepcopy(a)
  • 相关阅读:
    自动以管理员身份运行批处理(bat)文件
    apache+php完美解决301重定向的两种方法
    Apache限制访问某目录或某文件,限制允许指定IP
    Apache 禁用IP 访问 和 HTTP 跳转 HTTPS
    301重定向代码合集(iis,asp,php,asp.net,apache)
    以太坊中的gas、gas price、gas limit到底是什么
    解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
    linux/kde下chrome浏览器缺失最小化,最大化按钮的解决方案
    python自动化--语言基础三字典、函数、全局/局部变量
    python自动化--语言基础二运算符、格式化输出、条件语句、循环语句、列表、元组
  • 原文地址:https://www.cnblogs.com/yorkyu/p/10250788.html
Copyright © 2020-2023  润新知