Python常见的数据结构

发布时间 2023-04-07 21:38:15作者: 生物信息刘博

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)

方便处理表格数据

第三方库,额外安装

数据清洗和统计分析等