浅谈python中常用的8种经典数据结构

yizhihongxing

下面是关于“浅谈Python中常用的8种经典数据结构”的完整攻略:

一、列表(List)

列表是Python中最常用的数据结构之一。它是一个有序的、可修改的集合,可以容纳不同类型的元素。使用中括号将元素括起来,每个元素之间用逗号隔开。

1. 如何创建一个列表

my_list = [1, 2, 3, 'a', 'b', 'c']
print(my_list)

输出:[1, 2, 3, 'a', 'b', 'c']

2. 如何访问列表中的元素

my_list = [1, 2, 3, 'a', 'b', 'c']
print(my_list[0]) #输出:1
print(my_list[-1]) #输出:'c'

二、元组(Tuple)

元组也是一个有序的、不可修改的集合,和列表很相似,但是元组中的元素是不可修改的。使用小括号将元素括起来,每个元素之间用逗号隔开。

1. 如何创建一个元组

my_tuple = (1, 2, 3, 'a', 'b', 'c')
print(my_tuple)

输出:(1, 2, 3, 'a', 'b', 'c')

2. 如何访问元组中的元素

my_tuple = (1, 2, 3, 'a', 'b', 'c')
print(my_tuple[0]) #输出:1
print(my_tuple[-1]) #输出:'c'

三、集合(Set)

集合是一个无序的、无重复元素的集合,可以进行交集、并集等操作。

1. 如何创建一个集合

my_set = {1, 2, 3, 'a', 'b', 'c'}
print(my_set)

输出:{1, 2, 3, 'a', 'b', 'c'}

2. 如何访问集合中的元素

由于集合是无序的,所以不能像列表和元组那样通过索引来访问元素。

四、字典(Dictionary)

字典是一个无序的、键值对集合,可以根据键来访问值。

1. 如何创建一个字典

my_dict = {'name': 'Jack', 'age': 18, 'gender': 'male'}
print(my_dict)

输出:{'name': 'Jack', 'age': 18, 'gender': 'male'}

2. 如何访问字典中的元素

my_dict = {'name': 'Jack', 'age': 18, 'gender': 'male'}
print(my_dict['name']) #输出:'Jack'

五、栈(Stack)

栈是一种后进先出(LIFO)的数据结构。只允许对栈顶执行操作。

1. 如何创建一个栈

可以使用列表来实现一个栈,使用append()方法加入元素,使用pop()方法弹出栈顶元素。

my_stack = []
my_stack.append(1) #入栈
my_stack.append(2) #入栈
print(my_stack.pop()) #输出:2,出栈

六、队列(Queue)

队列是一种先进先出(FIFO)的数据结构。可以在队尾插入元素,在队头删除元素。

1. 如何创建一个队列

可以使用collections模块中的deque双端队列来实现一个队列,使用append()方法来插入元素,在使用popleft()方法删除元素。

from collections import deque
my_queue = deque()
my_queue.append(1) #队尾入队
my_queue.append(2) #队尾入队
print(my_queue.popleft()) #输出:1,队头出队

七、堆(Heap)

堆是一种可以快速找到最小(或最大)元素的数据结构。在Python中可以使用heapq模块来实现一个堆,其中heapify()方法可以将一个列表转化为堆,heappush()方法可以将元素加入堆中,heappop()方法可以弹出堆顶元素。

1. 如何创建一个堆

import heapq
my_heap = [1, 2, 3, 4, 5]
heapq.heapify(my_heap)
print(my_heap)

输出:[1, 2, 3, 4, 5]

2. 如何插入元素和弹出堆顶元素

import heapq
my_heap = [1, 2, 3, 4, 5]
heapq.heapify(my_heap)
heapq.heappush(my_heap, 0)
print(heapq.heappop(my_heap)) #输出:0

八、链表(Linked List)

链表是由节点组成的数据结构,每个节点包含数据和指向下一个节点的指针。链表的优点是可以在运行时动态添加或删除元素。

1. 如何创建一个链表

class Node():
    def __init__(self, data):
        self.data = data
        self.next = None

n1 = Node('a')
n2 = Node('b')
n3 = Node('c')
n1.next = n2
n2.next = n3

2. 如何遍历链表并输出元素

current = n1
while current is not None:
    print(current.data)
    current = current.next

输出:a b c

以上就是“浅谈Python中常用的8种经典数据结构”的完整攻略,其中包含了每种数据结构的创建、元素访问方法和示例代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈python中常用的8种经典数据结构 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python3.4学习笔记之常用操作符,条件分支和循环用法示例

    Python3.4学习笔记之常用操作符,条件分支和循环用法示例 在Python3.4中,有很多常用的操作符、条件分支和循环用法,这些知识点是Python编程的基础,非常值得我们学习。 常用操作符 Python3.4中常用的操作符有算术操作符、比较操作符、逻辑操作符等。接下来我们分别来介绍一下。 算术操作符 Python3.4中的算术操作符主要有加法+、减法-…

    python 2023年6月5日
    00
  • PyQt5+QtChart实现绘制极坐标图

    下面是关于“PyQt5+QtChart实现绘制极坐标图”的完整攻略,包含两个示例。 一、PyQt5+QtChart实现绘制极坐标图 1. PyQt5介绍 PyQt5是Python的一种GUI编程工具包,它使用Qt(一个跨平台的C++应用程序开发框架)提供了GUI编程能力。PyQt5是一个开源软件,支持Windows、Linux、MacOS和Android等操…

    python 2023年6月3日
    00
  • 处理 HTML 以删除和关闭 Python 中的打开标签

    【问题标题】:Handle HTML to remove and close open tags in Python处理 HTML 以删除和关闭 Python 中的打开标签 【发布时间】:2023-04-02 23:40:01 【问题描述】: 我正在尝试使用 HTMLParser 在 Python 中处理没有结束标签或无效结束标签的 HTML: 条目: &l…

    Python开发 2023年4月8日
    00
  • Python词频统计的两种方法详解

    Python词频统计的两种方法详解 在Python中,统计文本中每个词汇出现的次数是一个常见的需求。本文将介绍两种常见的实现方法。 方法一:使用Counter模块 使用Counter模块是Python中简单、快速的统计词频的方法。可以接受任何可迭代的对象作为输入,包括字符串、列表、元组、字典等。 下面是一个例子,展示如何统计字符串中每个单词出现的次数: fr…

    python 2023年6月3日
    00
  • Python数学建模学习模拟退火算法整数规划问题示例解析

    Python数学建模学习模拟退火算法整数规划问题示例解析 简介 本文将介绍使用Python实现模拟退火算法解决整数规划问题的方法。所需要的环境为Python3及numpy库的支持。文章将介绍整数规划、模拟退火算法及具体实现,并通过两个示例进行说明。 整数规划 整数规划问题(Integer Programming, IP)是一类优化问题,在目标函数和约束条件中…

    python 2023年6月5日
    00
  • pip报错“OSError: [Errno 13] Permission denied: ‘/usr/local/lib/python3.6/dist-packages/pip/_internal/utils/temp_dir.py’”怎么处理?

    当使用pip安装Python包时,可能会遇到“ModuleNotFoundError: No module named ‘pip._vendor.six’”或“OSError: [Errno 13] Permission denied: ‘/usr/local/lib/python3.6/dist-packages/pip/_internal/utils/t…

    python 2023年5月4日
    00
  • Python实现批量采集商品数据的示例详解

    Python实现批量采集商品数据的示例详解 在电商行业,我们经常需要采集大量商品数据。本文将介绍如何使用Python实现批量采集商品数据,包括如何使用requests库发送HTTP请求、如何使用BeautifulSoup库解析HTML响应、如何使用pandas库将数据保存到CSV文件中,并提供两个示例代码。 步骤1:导入必要的库 在使用Python实现批量采…

    python 2023年5月15日
    00
  • Python快速优雅的批量修改Word文档样式

    下面是“Python快速优雅的批量修改Word文档样式”的完整攻略。 1. 准备工作 1.1 安装Python-docx库 Python-docx库是一个可以操作docx格式文件的Python库,提供了非常方便的接口。使用pip安装即可。 pip install python-docx 1.2 准备Word文档样式模板 在使用Python实现批量修改Word…

    python 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部