• 列表函数&方法


    列表函数&方法

    函数

    1 返回列表元素个数 len(list)
    list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(len(list1))
    # 9
    
    2 返回列表元素最大值 max(list)
    • 当列表中元素全部为字符串时,根据每个字符串中第一个字符的ASCllUnicode对应的数值来比较,如果第一个字符的ASCllUnicode 对应数值相同,则比较第二个字符,一次类推。
    list1 = ['maria', 'jack', '张三', '李四']
    print(ord('m'))
    # 109
    print(ord('j'))
    # 106
    print(ord('张'))
    # 24352
    print(ord('李'))
    # 26446
    print(max(list1))
    # 李四
    
    • 当列表中元素全部为数值时,直接根据数值大小来比较。
    list1 = [1, 2, 6, 5, 8, 9, 10, 15]
    print(max(list1))
    # 15
    
    • 当列表中元素不全是字符串或不全是数值时,无法比较出最大值。
    list1 = ['maria', 'jack', '张三', '李四', 2, 5]
    print(max(list1))
    # TypeError: '>' not supported between instances of 'int' and 'str'
    
    3 返回列表元素最小值 min(list)

    使用方法和max()相同:

    • 当列表中元素全部为字符串时,根据每个字符串中第一个字符的ASCllUnicode对应的数值来比较,如果第一个字符的ASCllUnicode 对应数值相同,则比较第二个字符,一次类推。
    list1 = ['maria', 'jack', '张三', '李四']
    print(min(list1))
    # jack
    
    • 当列表中元素全部为数值时,直接根据数值大小来比较。
    list1 = [1, 2, 6, 5, 8, 9, 10, 15]
    print(max(list1))
    # 1
    
    • 当列表中元素不全是字符串或不全是数值时,无法比较。
    list1 = ['maria', 'jack', '张三', '李四', 2, 5]
    print(min(list1))
    # TypeError: '>' not supported between instances of 'int' and 'str'
    
    4 将元组转换成列表 list()

    list() 方法用于将元组或字符串转换为列表。

    注:元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。

    语法

    list(seq)
    # seq 为要转换成列表的元组或字符串
    

    示例

    tuple1 = (1, 3, 5, 7, 9)
    print(list(tuple1))
    print(list('hello,world!'))
    

    输出:

    [1, 3, 5, 7, 9]
    ['h', 'e', 'l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd', '!']
    

    列表方法

    1 在列表末尾添加新元素 list.append(obj)

    append() 方法用于在列表末尾添加新元素。

    语法

    list.append(obj)
    
    • list 是要操作的列表对象

    • obj 是要添加到列表末尾的对象

    • 该方法无返回值,但是修改原列表

    示例

    list1 = [1, 2, 'ZhangSan']
    list1.append('LiSi')
    print(list1)
    list1.append([5, 6, 7])
    print(list1)
    

    输出:

    [1, 2, 'ZhangSan', 'LiSi']
    [1, 2, 'ZhangSan', 'LiSi', [5, 6, 7]]
    

    注意

    list1 = [1, 2]
    list2 =[3]
    list1.append(list2)
    print(list1)
    list2[0] = 5
    print(list1, list2)
    

    以上代码输出:

    [1, 2, [3]]
    [1, 2, [5]] [5]
    

    由此可见,append() 是浅拷贝

    如果不希望这样,可以使用copy.deepcopy :需要导入copy 模块

    import copy
    
    list1 = [1, 2]
    list2 =[3]
    list1.append(copy.deepcopy(list2))
    print(list1)
    list2[0] = 5
    print(list1, list2)
    

    以上代码输出:

    [1, 2, [3]]
    [1, 2, [3]] [5]
    
    2 统计某个元素在列表中出现次数 list.count(obj)

    count() 方法用于统计某个元素在列表中出现的次数。

    语法

    list.count(obj)
    
    • obj 是需要统计的元素

    示例

    list1 = [1, 1, 1, '1', 1, '1', 2, 3]
    print(f"列表中有数字1的个数为:{list1.count(1)}")
    print(f"列表中有字符串1的个数为:{list1.count('1')}")
    

    以上代码输出:

    列表中有数字1的个数为:4
    列表中有字符串1的个数为:2
    
    3 list.extend(seq)

    extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

    语法

    list.extend(seq)
    
    • seq --元素列表,可以是列表、元组、集合、字典,若为字典,则仅会将键(key)作为元素依次添加至原列表的末尾。

    示例

    list1 = [1, 2, 3]
    num_tuple = (4, 5, 6)
    num_set = {7, 8, 9}
    num_list = [10, 11]
    num_dict = {
        12: 'twelve'
    }
    list1.extend(num_tuple)
    print("添加元组元素后:", list1)
    list1.extend(num_set)
    print("添加集合元素后:", list1)
    list1.extend(num_list)
    print("添加列表元素后:", list1)
    list1.extend(num_dict)
    print("添加字典元素后:", list1)
    

    以上代码输出:

    添加元组元素后: [1, 2, 3, 4, 5, 6]
    添加集合元素后: [1, 2, 3, 4, 5, 6, 8, 9, 7]
    添加列表元素后: [1, 2, 3, 4, 5, 6, 8, 9, 7, 10, 11]
    添加字典元素后: [1, 2, 3, 4, 5, 6, 8, 9, 7, 10, 11, 12]
    
    4 list.index()

    index() 函数用于从列表中找出某个值第一个匹配项的索引位置。

    语法

    list.index(x[, start, end])
    
    • x 要查找的元素
    • start --可选,默认值为0,查找的起始位置
    • end --可选,默认值为length-1查找的结束位置

    注意:查找范围包括起始索引,不包括结束索引。

    示例

    list1 = ['aa', 'bb', 'cc', 'aa', 'aa', 'cc', 'bb', 'dd', 'ee']
    print("第一个aa的索引为:", list1.index('aa'))
    print("从索引3开始的第一个aa的索引为:", list1.index('aa', 3))
    print("从索引2到索引7的第一个bb的索引为:", list1.index('bb', 2, 7))
    

    以上代码输出:

    第一个aa的索引为: 0
    从索引3开始的第一个aa的索引为: 3
    从索引2到索引7的第一个bb的索引为: 6
    
    5 在列表指定位置插入元素 list.insert()

    insert() 函数用于将指定对象插入列表的指定位置。

    语法

    list.insert(index, obj)
    
    • index -- 对象obj需要插入的索引位置。
    • obj -- 要插入列表中的对象。

    示例

    list1 = [1, 3, 4, 5]
    list1.insert(1, 2)
    print(list1)
    

    以上代码输出:

    [1, 2, 3, 4, 5]
    
    6 移除列表中一个元素 list.pop()

    pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

    语法

    list.pop([index])
    
    • index --可选参数,默认为 -1 ,不能超出列表索引范围

    • 返回值为移除的元素

    示例

    list1 = ['BeiJing', 'ShangHai', 'GuangZhou', 'ZhengZhou', 'HangZhou']
    list_pop = list1.pop()
    print(f"移除元素{list_pop}后的列表为:{list1}" )
    list_pop = list1.pop(1)
    print(f"移除元素{list_pop}后的列表为:{list1}" )
    

    以上代码输出:

    移除元素HangZhou后的列表为:['BeiJing', 'ShangHai', 'GuangZhou', 'ZhengZhou']
    移除元素ShangHai后的列表为:['BeiJing', 'GuangZhou', 'ZhengZhou']
    
    7 移除列表中某个值的第一个匹配项 list.remove()

    remove() 函数用于移除列表中某个值的第一个匹配项。

    语法

    list.remove(obj)
    
    • obj -- 列表中要移除的对象。

    • 该方法无返回值

    示例

    list1 = [1, 2, 1, 3, 6, 5, 2]
    list1.remove(1)
    print(list1)
    

    以上代码输出:

    [2, 1, 3, 6, 5, 2]
    
    8 反向列表中的元素 list.reverse()

    reverse() 函数用于反向列表中元素。

    语法

    list.reverse()
    
    • 无参数,无返回值

    示例

    list1 = [1, 2, 3, 45, 6]
    list1.reverse()
    print(list1)
    

    以上代码输出:

    [6, 45, 3, 2, 1]
    
    9 列表排序 list.sort()

    sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

    语法

    list.sort(key=None, reverse=False)
    
    • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    • reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

    示例

    list1 = [1, 2, 3, 45, 6, 10, 88]
    list1.sort()
    print(list1)
    

    以上代码输出结果:

    [1, 2, 3, 6, 10, 45, 88]
    

    降序排列:

    list1 = [1, 2, 3, 45, 6, 10, 88]
    list1.sort(reverse=True)
    print(list1)
    

    以上代码输出:

    [88, 45, 10, 6, 3, 2, 1]
    

    对字符串进行排序:

    list1 = ['BeinJing', 'ShangHai', 'GuangZhou', 'ZhengZhou']
    list1.sort()
    print("升序排列的结果为:", list1)
    list1.sort(reverse=True)
    print("降序排列的结果为:", list1)
    

    字符串排序依据字符串首个字符的AscllUnicode 数值,首个字符相同则比较第二个字符。

    以上代码输出:

    升序排列的结果为: ['BeinJing', 'GuangZhou', 'ShangHai', 'ZhengZhou']
    降序排列的结果为: ['ZhengZhou', 'ShangHai', 'GuangZhou', 'BeinJing']
    

    通过指定列表中的元素排序来输出列表:

    list1 = ['BeinJing', 'ShangHai', 'GuangZhou', 'ZhengZhou']
    list1.sort(key=lambda k: k[1])
    print("根据字符串的第二个字符排列的结果为:", list1)
    

    以上代码输出:

    根据字符串的第二个字符排列的结果为: ['BeinJing', 'ShangHai', 'ZhengZhou', 'GuangZhou']
    

    等价于下面的代码:

    list1 = ['BeinJing', 'ShangHai', 'GuangZhou', 'ZhengZhou']
    
    def secondchar(e):
        return e[1]
    
    list1.sort(key=secondchar)
    print("根据字符串的第二个字符排列的结果为:", list1)
    
    10 清空列表 list.clear()

    clear() 函数用于清空列表,类似于 del a[:]

    语法

    list.clear()
    

    示例

    list1 = [1, 2, 3, 4, 5]
    list1.clear()
    print(list1)
    

    以上代码输出:

    []
    
    11 复制列表 list.copy()

    copy() 函数用于复制列表,类似于 a[:]

    语法

    list.copy()
    

    示例

    list1 = [1, 2, 3, 4, 5, 6]
    list2 = list1.copy()
    print(list2)
    

    以上代码输出:

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

    实验:

    list1 = [1, 2, 3, 4, 5, 6]
    list2 = list1.copy()
    list1[1] = 10
    print(list1, list2)
    # [1, 10, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6]
    

    再看下面:

    list1 = [[8, 9], 1, 2, 3, 4, 5, 6]
    list2 = list1.copy()
    list1[0][1] = 10
    print(list1, list2)
    # [[8, 10], 1, 2, 3, 4, 5, 6] [[8, 10], 1, 2, 3, 4, 5, 6]
    

    说明copy()方法是浅拷贝。使用时需要注意。

    本文来自博客园,作者:雨-铃,原文链接:https://www.cnblogs.com/yuling25/p/15294215.html

  • 相关阅读:
    [iOS微博项目
    [iOS微博项目
    [iOS微博项目
    [iOS微博项目
    APScheduler: standalone vs daemonic
    一句话解释jquery中offset、pageX, pageY、position、scrollTop, scrollLeft的区别
    cocos2d-x box2d使用调试绘图
    Maven管理Android项目1
    mina socket底层主流程源码实现
    5种IO模型
  • 原文地址:https://www.cnblogs.com/yuling25/p/15294215.html
Copyright © 2020-2023  润新知