• Python列表基础与高级应用详解


    列表(List)是Python中最常用的数据结构之一,它允许存储不同类型的元素,并且可以动态地增加或减少元素数量。本文将深入探讨Python列表的基础知识、操作技巧以及一些高级功能,同时附带示例代码和运行结果。

    列表的创建与基本操作

    创建列表

    列表可以由一系列逗号分隔的值构成,这些值被方括号括起来。

    list1 = ['C语言', 'Python', 1997, 2000]
    list2 = [1, 2, 3, 4, 5]
    list3 = ["a", "b", "c", "d"]
    list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
    

    访问列表元素

    列表索引从0开始,可以通过索引获取元素。

    list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
    print(list[0])  # 输出: red
    print(list[1])  # 输出: green
    print(list[2])  # 输出: blue
    

    索引也可以从后向前计算,最后一个元素的索引为-1。

    print(list[-1])  # 输出: black
    print(list[-2])  # 输出: white
    

    列表切片语法

    列表切片是Python中非常强大的特性,它允许你以灵活的方式访问列表中的子集。列表切片的语法是 [start:stop:step],其中 start 是开始索引(包含),stop 是结束索引(不包含),而 step 是步长,表示每次移动的索引数目。如果不提供 startstop,则会默认从列表的开始或结束处开始切片。如果不提供 step,则默认为1。

    下面是一些具体的例子来解释列表切片的用法:

    假设我们有一个列表 colors:

    colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
    

    切片从列表的开始到某一位置之前

    如果省略了 start,那么切片会从列表的开始处开始。例如,获取列表前两个元素:

    print(colors[:2])  # 输出: ['red', 'orange']
    

    切片到列表的某一位置之后

    如果省略了 stop,那么切片会一直进行到列表的末尾。例如,获取从第三个元素到最后的元素:

    print(colors[2:])  # 输出: ['yellow', 'green', 'blue', 'indigo', 'violet']
    

    切片从列表的某一位置到另一位置

    当同时提供了 startstop,那么切片会从 start 索引开始直到 stop 索引之前。例如,获取从第二个元素到第五个元素(不包括第五个元素):

    print(colors[1:5])  # 输出: ['orange', 'yellow', 'green', 'blue']
    

    负数索引切片

    负数索引从列表的末尾开始计算,-1是最后一个元素,-2是倒数第二个元素,以此类推。例如,获取最后两个元素:

    print(colors[-2:])  # 输出: ['indigo', 'violet']
    

    使用步长切片

    步长参数允许你指定切片时跳过多少元素。例如,获取每隔一个元素:

    print(colors[::2])  # 输出: ['red', 'yellow', 'blue', 'violet']
    

    如果要逆序列表,可以使用 -1 作为步长:

    print(colors[::-1])  # 输出: ['violet', 'indigo', 'blue', 'green', 'yellow', 'orange', 'red']
    

    这些切片操作使你能够以非常直观的方式访问列表的子集,而无需显式循环或使用复杂的索引逻辑。希望这些示例能帮助你更深入地理解Python列表切片的使用。

    更新列表

    列表是可变的,可以更新其中的元素。

    list = ['Google', 'Runoob', 1997, 2000]
    print("第三个元素为 : ", list[2])  # 输出: 第三个元素为 :  1997
    list[2] = 2001
    print("更新后的第三个元素为 : ", list[2])  # 输出: 更新后的第三个元素为 :  2001
    

    列表还可以使用append()insert()方法添加元素。

    list1 = ['Google', 'Runoob', 'Taobao']
    list1.append('Baidu')
    print("更新后的列表 : ", list1)  # 输出: 更新后的列表 :  ['Google', 'Runoob', 'Taobao', 'Baidu']
    
    x = [1, 2, 3]
    x.append(5)
    x.insert(3, 'w')
    x.extend(['a', 'b'])
    print(x*3)  # 输出: [1, 2, 3, 'w', 'a', 'b', 1, 2, 3, 'w', 'a', 'b', 1, 2, 3, 'w', 'a', 'b']
    

    列表的删除操作

    列表元素可以使用del, pop(), 或 remove()方法进行删除。

    y = ["a", "b", "c", "d", 'e', 'f']
    del y[2]
    y.pop(0)
    y.remove('f')
    print(y)  # 输出: ['c', 'd', 'e']
    

    列表元素的访问与计数

    可以使用count()index()方法查找元素的出现次数和位置。

    x = [1, 2, 3, 3, 4, 5]
    print(x.count(3), x.index(2))  # 输出: (2, 1)
    

    列表排序

    列表可以使用sort()方法进行排序,也可以使用sorted()函数不改变原列表进行排序。

    x = [1, 2, 4, 5, 6, 34, 22, 55, 22, 11, 24, 56, 78]
    import random as r
    r.shuffle(x)
    print(x)
    x.sort(reverse=True)
    print(x)  # 输出: 排序后的列表
    

    打包与解包

    列表可以与其他序列进行打包。

    a = [1, 2, 3]
    b = [4, 5, 6]
    print(list(zip(a, b)))  # 输出: [(1, 4), (2, 5), (3, 6)]
    

    枚举与遍历

    可以使用enumerate()函数获取列表元素及其索引。

    for index, item in enumerate('abcdef'):
        print(index, item)
    

    遍历列表的多种方式:

    a = ['a', 'b', 'c', 'd', 'e', 'f']
    for i in a:
        print(i)
    for i in range(len(a)):
        print(i, a[i])
    for i, ele in enumerate(a):
        print(i, ele)
    

    列表运算符

    列表支持+*运算符。

    print(len([1, 2, 3]))  # 输出: 3
    print([1, 2, 3] + [4, 5, 6])  # 输出: [1, 2, 3, 4, 5, 6]
    print(['Hi!'] * 4)  # 输出: ['Hi!', 'Hi!', 'Hi!', 'Hi!']
    print(3 in [1, 2, 3])  # 输出: True
    

    嵌套列表

    列表可以包含其他列表。

    nested_list = [[1, 2], [3, 4]]
    print(nested_list)  # 输出: [[1, 2], [3, 4]]
    

    列表比较

    列表的比较通常涉及元素的逐个比较。

    import operator
    a = [1, 2]
    b = [2, 3]
    c = [2, 3]
    print("operator.eq(a,b): ", operator.eq(a, b))
    print("operator.eq(c,b): ", operator.eq(c, b))
    

    Python列表函数与方法

    Python的列表提供了丰富的函数和方法,用于处理列表的各种需求。下面是一个整理过的列表函数和方法的表格,包括它们的功能描述和示例代码:

    序号函数/方法功能描述示例代码及结果
    1len(list)返回列表的元素个数。print(len([1, 2, 3]))
    # 输出: 3
    2max(list)返回列表中的最大元素。print(max([1, 2, 3]))
    # 输出: 3
    3min(list)返回列表中的最小元素。print(min([1, 2, 3]))
    # 输出: 1
    4list(seq)将元组或其他序列转换为列表。print(list((1, 2, 3)))
    # 输出: [1, 2, 3]
    5list.append(obj)在列表末尾添加一个新的对象。lst = [1, 2]; lst.append(3); print(lst)
    # 输出: [1, 2, 3]
    6list.count(obj)统计列表中某个元素出现的次数。lst = [1, 2, 2, 3]; print(lst.count(2))
    # 输出: 2
    7list.extend(seq)在列表末尾一次性追加另一个序列的所有元素。lst = [1, 2]; lst.extend([3, 4]); print(lst)
    # 输出: [1, 2, 3, 4]
    8list.index(obj)返回列表中某个元素的索引位置。lst = ['a', 'b', 'c']; print(lst.index('b'))
    # 输出: 1
    9list.insert(index, obj)在指定位置插入一个对象。lst = [1, 2, 3]; lst.insert(1, 'a'); print(lst)
    # 输出: [1, 'a', 2, 3]
    10list.pop([index])移除列表中的一个元素(默认最后一个),并返回该元素。lst = [1, 2, 3]; print(lst.pop()); print(lst)
    # 输出: 3, [1, 2]
    11list.remove(obj)移除列表中某个值的第一个匹配项。lst = [1, 2, 2, 3]; lst.remove(2); print(lst)
    # 输出: [1, 2, 3]
    12list.reverse()就地反转列表元素的顺序。lst = [1, 2, 3]; lst.reverse(); print(lst)
    # 输出: [3, 2, 1]
    13list.sort(key=None, reverse=False)对列表进行排序。lst = [3, 1, 2]; lst.sort(); print(lst)
    # 输出: [1, 2, 3]
    14list.clear()清空列表中的所有元素。lst = [1, 2, 3]; lst.clear(); print(lst)
    # 输出: []
    15list.copy()复制列表。lst = [1, 2, 3]; new_lst = lst.copy(); print(new_lst)
    # 输出: [1, 2, 3]

    这些函数和方法提供了对列表元素的访问、修改、排序和查询等功能,是Python编程中处理数据结构时的常用工具。使用这些方法可以让代码更加简洁和高效。

  • 相关阅读:
    数据仓库面试题——介绍下数据仓库
    编程题练习@9-13
    [carla入门教程]-5 使用ROS与carla通信
    二分搜索算法
    会议OA项目待开会议、所有会议功能
    1.4、栈
    JS 流行框架(二):Express
    基于MATLAB的高阶(两个二阶级联构成的四阶以及更高阶)数字图形音频均衡器系数计算(可直接用于DSP实现)
    【细读Spring Boot源码】重中之重refresh()
    Feign高级实战-源码分析
  • 原文地址:https://blog.csdn.net/qq_23488347/article/details/140413901