• Python基础数据结构入门必读指南


    更多资料获取

    作者主页:涛哥聊Python

    个人网站涛哥聊Python


    大家好,我是涛哥,今天为大家分享的是Python中常见的数据结构

    1.数组

    含义:数组是一种有序的数据结构,其中的元素可以按照索引来访问。数组的大小通常是固定的,一旦创建就不能更改。

    基本操作:

    # 创建数组
    arr = [1, 2, 3, 4, 5]
    
    # 访问元素
    element = arr[2]  # 获取第三个元素,索引从0开始
    
    # 修改元素
    arr[1] = 6
    
    # 获取数组长度
    length = len(arr)
    
    # 迭代数组
    for item in arr:
        print(item)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2.列表

    含义:列表是Python中内置的数据结构,它是一种有序的可变序列,可以存储不同类型的元素。

    基本操作:

    # 创建列表
    my_list = [1, 2, 3, "hello"]
    
    # 添加元素
    my_list.append(4)  # 添加元素到末尾
    my_list.insert(2, 5)  # 在指定位置插入元素
    
    # 删除元素
    my_list.remove(3)  # 移除指定元素
    popped_item = my_list.pop()  # 移除并返回末尾元素
    
    # 获取列表长度
    length = len(my_list)
    
    # 列表切片
    subset = my_list[1:3]  # 获取索引1到2的子列表
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    3.栈

    含义:栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。

    基本操作:

    # 创建空栈
    stack = []
    
    # 入栈
    stack.append(1)
    stack.append(2)
    
    # 出栈
    popped_item = stack.pop()
    
    # 获取栈顶元素
    top_item = stack[-1]
    
    # 检查栈是否为空
    is_empty = len(stack) == 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    4.队列

    含义:队列是一种先进先出(FIFO)的数据结构,只能在队列的一端进行插入操作,另一端进行删除操作。

    基本操作:

    from collections import deque
    
    # 创建空队列
    queue = deque()
    
    # 入队
    queue.append(1)
    queue.append(2)
    
    # 出队
    popped_item = queue.popleft()
    
    # 获取队列头元素
    front_item = queue[0]
    
    # 检查队列是否为空
    is_empty = len(queue) == 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    5.链表

    含义:链表是一种动态数据结构,由节点组成,每个节点包含一个数据元素和指向下一个节点的引用。链表可以是单链表、双链表或循环链表。

    基本操作:

    class ListNode:
        def __init__(self, value):
            self.value = value
            self.next = None
    
    # 创建链表节点
    node1 = ListNode(1)
    node2 = ListNode(2)
    
    # 构建链表
    node1.next = node2
    
    # 遍历链表
    current = node1
    while current:
        print(current.value)
        current = current.next
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    6.哈希表(字典)

    含义:哈希表是一种键值对存储结构,它通过哈希函数将键映射到特定的存储位置,以实现快速的查找和插入操作。

    基本操作:

    # 创建空字典
    my_dict = {}
    
    # 添加键值对
    my_dict["name"] = "Alice"
    my_dict["age"] = 30
    
    # 获取值
    value = my_dict["name"]
    
    # 删除键值对
    del my_dict["age"]
    
    # 检查键是否存在
    key_exists = "name" in my_dict
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    7.树

    含义:树是一种层次结构的数据结构,由节点组成,每个节点可以有零个或多个子节点。树常用于表示层次关系,例如文件系统、组织结构等。

    基本操作:树的基本操作包括节点的插入、删除和遍历。

    class TreeNode:
        def __init__(self, value):
            self.value = value
            self.left = None
            self.right = None
    
    # 创建树节点
    root = TreeNode(1)
    node2 = TreeNode(2)
    node3 = TreeNode(3)
    
    # 构建树结构
    root.left = node2
    root.right = node3
    
    # 遍历树(例如中序遍历)
    def inorder_traversal(node):
        if node:
            inorder_traversal(node.left)
            print(node.value)
            inorder_traversal(node.right)
    
    inorder_traversal(root)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    8.图

    含义:图是一种表示对象之间关系的数据结构,由节点(顶点)和边组成。图可以是有向的或无向的,可以用于表示网络、社交关系等复杂结构。

    基本操作:图的基本操作包括节点的添加、删除以及边的添加和删除。图的遍历操作可以有深度优先搜索(DFS)和广度优先搜索(BFS)等。

    class Graph:
        def __init__(self):
            self.graph = {}
    
        def add_node(self, node):
            if node not in self.graph:
                self.graph[node] = []
    
        def add_edge(self, node1, node2):
            self.graph[node1].append(node2)
            self.graph[node2].append(node1)
    
    # 创建图
    my_graph = Graph()
    my_graph.add_node("A")
    my_graph.add_node("B")
    my_graph.add_edge("A", "B")
    
    # 图的遍历示例
    def dfs(graph, start, visited=None):
        if visited is None:
            visited = set()
        visited.add(start)
        print(start, end=' ')
        for neighbor in graph[start]:
            if neighbor not in visited:
                dfs(graph, neighbor, visited)
    
    print("深度优先搜索结果:")
    dfs(my_graph.graph, "A")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    今天的分享就到这里了。


    最后

    如果还想要领取更多更丰富的资料,可以点击文章下方名片,回复【优质资料】,即可获取 全方位学习资料包。
    在这里插入图片描述

    资料领取方式:

    如果您渴望获取更多关于Python编程的宝贵资料,不妨访问我的个人主页。在那里,您将发现更多深入的Python教程、实用工具、项目示例以及专业建议等等。
    点击文章下方链接卡片,回复【优质资料】,可直接领取资料大礼包。

  • 相关阅读:
    Java学习笔记40——Lambda表达式
    猿创征文 |【Ant Design Pro】使用ant design pro做为你的开发模板(三) 接入mock数据做持续开发
    python基础语法
    建造者模式
    Linux如何查找域名IP地址
    Vue3 - filters 过滤器为什么被移除放弃?取而代之的解决方案又是什么?
    【计算机网络】计算机网络中的一些基本概念
    我的创作纪念日
    基于STM32的定时器--定时中断(HAL库)
    一文吃透接口调用神器RestTemplate
  • 原文地址:https://blog.csdn.net/wuShiJingZuo/article/details/133013422