首页 > 编程语言 >Python常见的数据结构

Python常见的数据结构

时间:2023-04-07 21:49:39浏览次数:33  
标签:Python 常见 DataFrame 元组 队列 print 数据结构

Python常见的数据结构包括:

 

列表(List):一种有序的、可变的序列数据结构,可以存储不同类型的元素。支持添加、删除、修改和查询元素等操作。

 

元组(Tuple):与列表类似,但元组是不可变的,一旦创建就无法修改。元组通常用于表示一个具有一定结构的记录。

 

集合(Set):一种无序的、不重复的元素集合,支持进行集合运算,如并集、交集、差集等。

 

字典(Dict):一种键值对(key-value)映射的数据结构,支持使用键(key)快速查找值(value)。字典在Python中也被称为映射(Mapping)或哈希表(Hash Table)。

 

字符串(String):一种不可变的字符序列,用于表示和处理文本数据。

 

数组(Array):Python内置的数组模块提供的数组类型,比列表更节省空间,但要求元素类型相同。数组的使用场景主要针对数值型数据。

 

双端队列(Deque):Python内置的collections模块提供的双端队列(Double-Ended Queue),用于快速地在队列的两端添加或删除元素。

 

堆(Heap):Python内置的heapq模块提供的堆数据结构,实现了二叉堆算法,用于维护一个有序序列。

 

DataFrame(pandas库):一种二维表格型数据结构,具有行和列的标签,可以处理不同类型的数据。DataFrame在数据科学和数据分析领域非常流行,因为它提供了许多方便的数据处理和分析功能,例如数据筛选、排序、统计分析等。

 

对于数据分析和数据处理任务,DataFrame是非常实用的数据结构。在许多情况下,DataFrame可以替代其他数据结构,如列表、元组、字典等。

 

这些数据结构在不同的应用场景中具有不同的优势,根据实际需求和数据类型来选择合适的数据结构。

 

Python常见的数据结构可以分为以下几类:

 

序列型数据结构:这类数据结构是有序的元素集合,可以通过索引访问。主要包括列表(List)、元组(Tuple)和字符串(String)。

 

映射型数据结构:这类数据结构是基于键值对(key-value)的映射关系。主要有字典(Dict)。

 

集合型数据结构:这类数据结构中的元素是无序且不重复的。主要有集合(Set)。

 

数值型数据结构:这类数据结构用于存储相同类型的数值数据,更加节省空间。主要有数组(Array)。

 

高级数据结构:这类数据结构通常是由Python内置库或第三方库提供的,用于满足特定需求。例如,双端队列(Deque,collections模块)、堆(Heap,heapq模块)和DataFrame(pandas库)。

 

这些数据结构根据实际需求和数据类型来选择,它们可以相互组合使用,以实现更复杂的数据处理和操作。

 

以下是不同类型的Python常见数据结构的示例:

 

序列型数据结构: 

列表(List):

fruits = ["苹果", "香蕉", "橙子", "葡萄"]
fruits.append("柚子")
fruits.remove("香蕉")
fruits[1] = "芒果"
print(fruits)

元组(Tuple):

coordinates = (120.381700, 36.105215)
latitude, longitude = coordinates
print("纬度:", latitude, "经度:", longitude)

字符串(String): 

greeting = "你好,世界!"
print(greeting.upper())
print(greeting.replace("世界", "Python"))

映射型数据结构:

字典(Dict):

student = {
    "name": "张三",
    "age": 20,
    "major": "计算机科学"
}
student["age"] = 21
student["city"] = "北京"
print(student)

集合型数据结构: 

集合(Set):

unique_numbers = {1, 2, 3, 2, 1}
unique_numbers.add(4)
unique_numbers.remove(1)
print(unique_numbers)

数值型数据结构: 

数组(Array):

import array

arr = array.array('i', [1, 2, 3, 4, 5])
arr.append(6)
arr.pop(0)
print(arr)

高级数据结构:

双端队列(Deque,collections模块):

from collections import deque

queue = deque(["苹果", "香蕉", "橙子", "葡萄"])
queue.appendleft("柚子")
queue.pop()
print(queue)

堆(Heap,heapq模块):

import heapq

nums = [1, 5, 2, 8, 3]
heapq.heapify(nums)
smallest = heapq.heappop(nums)
print(smallest)

DataFrame(pandas库):

import pandas as pd

data = {
    "姓名": ["张三", "李四", "王五"],
    "年龄": [20, 22, 21],
    "城市": ["北京", "上海", "广州"]
}

df = pd.DataFrame(data)
df["年龄"] = df["年龄"] + 1
print(df)

 

这些数据结构示例展示了Python中不同类型的数据结构及其用法。在实际编程中,根据需求选择合适的数据结构来完成特定任务。

 

下面表格对比了Python中不同类型的常见数据结构,包括优点、缺点和适用场景。根据实际需求选择合适的数据结构以实现高效的编程。

 

表格 1 比较 不同类型的Python常见的数据结构;

数据结构类型

名称

优点

缺点

适用场景

序列型

列表(List)

可变,支持增删改查

内存占用较大,速度较慢

存储有序数据,需要修改

序列型

元组(Tuple)

不可变,速度快

不支持修改,只能通过重新创建进行修改

存储有序数据,不修改

序列型

字符串(String)

不可变,易操作

不支持修改,占用空间

存储和处理文本信息数据

映射型

字典(Dict)

键值对存储,查找速度快

无序,占用空间较大

存储键值对数据,需要快速查找和修改

集合型

集合(Set)

无序,元素唯一

不支持索引和切片操作

存储无重复元素的数据

数值型

数组(Array)

内存紧凑,操作快

仅适用于同一类型的数值数据

存储大量相同类型的数值数据

高级

双端队列(Deque)

支持两端高效操作

操作较为复杂

需要在两端进行频繁操作的数据队列

高级

堆(Heap)

保持数据排序状态

操作较为复杂

优先队列和排序问题等

高级

DataFrame(pandas)

方便处理表格数据

第三方库,额外安装

数据清洗和统计分析等

标签:Python,常见,DataFrame,元组,队列,print,数据结构
From: https://www.cnblogs.com/liuyajun2022/p/17297438.html

相关文章

  • flask-day5——python项目高并发异步部署、uwsgi启动python的web项目不要使用全局变量
    目录一、python项目高并发异步部署二、uwsgi启动Python的Web项目中不要使用全局变量三、信号3.1flask信号3.2django信号四、微服务的概念五、flask-script六、sqlalchemy快速使用七、sqlalchemy快速使用4.1原生操作的快速使用八、创建操作数据表九、作业1、什么是猴子补丁,有什......
  • python opencv line
    pythonopencvline importcv2#Loadanimageimg=cv2.imread("image1.jpg")#Drawaredlinefrom(0,0)to(100,100)withathicknessof5pixelscv2.line(img,(0,0),(100,100),(0,0,255),5)#Displaytheimagecv2.imshow("Im......
  • python-xpath,爬取猪八戒网(半成品)
    数据未进行清洗xpath  / 层级关系text() 拿文本//    https://blog.csdn.net/KELLENSHAW/article/details/127877476爬取https://task.zbj.com/hall/list-all-0-p1?kw=HTML先定位小盒子的div然后通过检查,xpath://*[@id="hall-list-wrap"]/div[4]/div[1]/div[1]/div[1]/d......
  • MyBatis常见问题
    Mybatis常见问题1,大于号、小于号在sql语句中的转换使用mybatis时sql语句是写在xml文件中,如果sql中有一些特殊的字符的话,比如<,<=,>,>=等符号,会引起xml格式的错误,需要替换掉,或者不被转义。有两种方法可以解决:转义字符和标记CDATA块。方式一:转义字符<selectid="se......
  • 基于Python的机器学习算法——sklearn模块
    基于Python的机器学习算法安装包:pipinstallnumpy#安装numpy包pipinstallsklearn#安装sklearn包importnumpyasnp#加载包numpy,并将包记为np(别名)importsklearn#加载sklearn包python中的基础包:numpy:科学计算的基础库,包括多维数组处理、线性代数等pandas:主......
  • 自动旋转ROS小车(rviz+urdf+xacro)(附加python操作键盘控制小车运动)
    自动旋转ROS小车(rviz+urdf+xacro)(附加python操作键盘控制小车运动)成果图STEP1创建工作空间mkdir-pcar_ws/srccdcar_wscatkin_makeSTEP2在vscode中准备需要的文件夹右键src,点击CreateCatkinPackage再跳出的输入框中:先输入包名:car再输入依赖工具:urdfx......
  • Python 虚拟环境迁移到其他电脑
    Python虚拟环境迁移到其他电脑 一、背景介绍在Python项目开发过程中,根据不同的项目场景,需要切换不同的Python版本。因此,我们经常会对不同的项目,创建特定的Python虚拟环境,实现项目环境间的“物理隔离”。本地创建Python虚拟环境,开发测试完项目功能,需要部署到现场环......
  • #指尖人生#Python常用模块:sys模块
    常用的属性: importsys sys.argv  命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path  返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.pla......
  • Python数据分析库介绍及引入惯例
    文章和代码等已经归档至【Github仓库:https://github.com/timerring/dive-into-AI】或者公众号【AIShareLab】回复python数据分析也可获取。python的缺点Python有一个叫做全局解释器锁(GlobalInterpreterLock,GIL)的组件,这是一种防止解释器同时执行多条Python字节码指令的机制。这......
  • DolphinDB +Python Airflow 高效实现数据清洗
    DolphinDB作为一款高性能时序数据库,其在实际生产环境中常有数据的清洗、装换以及加载等需求,而对于该如何结构化管理好ETL作业,Airflow提供了一种很好的思路。本篇教程为生产环境中ETL实践需求提供了一个解决方案,将PythonAirflow引入到DolphinDB的高可用集群中,通过使用Ai......