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)

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的子列表

3.栈

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

基本操作:

# 创建空栈
stack = []

# 入栈
stack.append(1)
stack.append(2)

# 出栈
popped_item = stack.pop()

# 获取栈顶元素
top_item = stack[-1]

# 检查栈是否为空
is_empty = len(stack) == 0

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

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

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

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)

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")

今天的分享就到这里了。


最后

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

资料领取方式:

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

猜你喜欢

转载自blog.csdn.net/wuShiJingZuo/article/details/133013422