python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python数据结构

Python中四大核心数据结构(列表,元组,字典和集合)的完全解析

作者:道之极万物灭

这篇文章主要为大家详细介绍了Python中四大核心数据结构的相关知识,即列表,元组,字典和集合,文中的示例代码讲解详细,有需要的小伙伴可以了解下

一、列表(List)—— 灵活的动态数组

1.1 基础操作全流程示例

# 创建-操作-输出完整演示
# 初始化商品列表
products = ["手机", "笔记本", "耳机", "鼠标"]

print("原始列表:", products)  # ['手机', '笔记本', '耳机', '鼠标']

# 索引访问与切片
print("首个商品:", products[0])      # 手机
print("最后两个商品:", products[-2:]) # ['耳机', '鼠标']

# 元素修改与扩展
products[1] = "游戏本"             # 修改元素
products.append("键盘")           # 追加元素
products.insert(2, "显示器")      # 插入元素

print("修改后列表:", products)    # ['手机', '游戏本', '显示器', '耳机', '鼠标', '键盘']

# 删除操作
removed_item = products.pop(3)    # 删除索引3的元素
print("被删除商品:", removed_item) # 耳机
print("当前列表:", products)      # ['手机', '游戏本', '显示器', '鼠标', '键盘']

1.2 核心方法详解

# 创建数字列表
nums = [3, 1, 4, 1, 5, 9]

# 排序与反转
nums.sort()                     # 升序排列 [1, 1, 3, 4, 5, 9]
nums.reverse()                  # 反转列表 [9, 5, 4, 3, 1, 1]

# 列表推导式
squares = [x**2 for x in nums if x > 3]
print("大数平方:", squares)     # [81, 25, 16]

# 其他实用方法
print("出现次数:", nums.count(1))  # 2
nums.clear()                    # 清空列表

二、元组(Tuple)—— 不可变数据容器

完整操作示例

# 定义-访问-解包全流程
# 创建坐标元组
point = (10, 20)

# 索引访问
print("X坐标:", point[0])    # 10
print("Y坐标:", point[1])    # 20

# 元组解包
x, y = point
print(f"坐标位置: ({x}, {y})")  # (10, 20)

# 类型转换示例
list_point = list(point)      # 转为列表可修改
list_point[0] += 5
new_point = tuple(list_point)
print("新坐标:", new_point)   # (15, 20)

# 函数返回多个值
def get_dimensions():
    return 1920, 1080

width, height = get_dimensions()
print(f"分辨率: {width}x{height}")

三、字典(Dict)—— 高效键值存储

3.1 完整操作流程

# 创建-更新-遍历完整示例
# 初始化学生信息
student = {
    "name": "张三",
    "age": 18,
    "courses": ["数学", "英语"]
}

# 添加新信息
student["gender"] = "男"
student["age"] = 19          # 修改年龄

# 安全获取值
score = student.get("score", 0)
print("默认分数:", score)    # 0

# 删除元素
removed = student.pop("courses")
print("已删除课程:", removed) # ['数学', '英语']

# 遍历字典
print("\n学生详细信息:")
for key, value in student.items():
    print(f"{key}: {value}")

"""
输出:
学生详细信息:
name: 张三
age: 19
gender: 男
"""

3.2 进阶方法应用

# 字典合并与推导式
grades = {"数学": 90, "英语": 85}
extra_grades = {"编程": 95, "物理": 88}

# 合并字典
grades.update(extra_grades)

# 字典推导式
passed = {subject: score for subject, score in grades.items() if score >= 85}
print("及格科目:", passed)  # {'数学':90, '英语':85, '编程':95, '物理':88}

# 键值反转
inverted_dict = {v: k for k, v in grades.items()}
print("分数对照:", inverted_dict)  # {90: '数学', 85: '英语', ...}

四、集合(Set)—— 唯一元素管理器

完整操作示例

# 创建-运算-方法全流程
# 初始化集合
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}

print("原始集合A:", A)  # {1,2,3,4}
print("原始集合B:", B)  # {3,4,5,6}

# 集合运算
print("并集:", A | B)   # {1,2,3,4,5,6}
print("差集:", A - B)   # {1,2}
print("对称差集:", A ^ B) # {1,2,5,6}

# 元素操作
A.add(5)                # 添加元素
A.discard(2)            # 安全删除
print("更新后A:", A)    # {1,3,4,5}

# 集合推导式
even_numbers = {x for x in range(10) if x%2 == 0}
print("偶数集合:", even_numbers)  # {0,2,4,6,8}

五、四大数据结构方法速查表

O(1) :操作耗时与数据量无关

O(n):操作耗时与数据量成正比

操作列表方法元组特性字典方法集合方法
添加元素append/insert不可变dict[key] = valueadd/update
删除元素pop/remove不可变pop/delremove/discard
排序sort()sorted()sorted(items)sorted()
反转reverse()需转换列表reversed()需转换列表
长度查询len()len()len()len()
包含检查ininin (keys)in
内存占用较高较低较高中等
时间复杂度查询O(n)查询O(n)查询O(1)查询O(1)

六、实战应用案例

数据清洗工具函数

def data_cleaner(raw_data):
    # 列表存储有效数据
    cleaned = []
    
    # 集合记录已处理项
    seen = set()
    
    # 字典统计频率
    counter = {}
    
    for item in raw_data:
        # 去重处理
        if item not in seen:
            cleaned.append(item)
            seen.add(item)
        
        # 统计频率
        counter[item] = counter.get(item, 0) + 1
    
    # 元组保存元信息
    meta = (len(raw_data), len(cleaned))
    
    return {
        "cleaned_data": cleaned,
        "frequency": counter,
        "metadata": meta
    }

# 测试数据
test_data = ["A", "B", "A", "C", "B", "D"]
result = data_cleaner(test_data)
print(result)
"""
输出:
{
    'cleaned_data': ['A', 'B', 'C', 'D'],
    'frequency': {'A':2, 'B':2, 'C':1, 'D':1},
    'metadata': (6, 4)
}
"""

最佳实践指南

数据结构选择原则

性能优化技巧

代码可读性建议

常见陷阱规避

掌握这些核心数据结构的特性和使用场景,将显著提升Python编程效率。建议读者在实际开发中多尝试不同结构的组合应用,例如使用字典列表存储表格数据,或通过集合运算进行高效去重。

到此这篇关于Python中四大核心数据结构(列表,元组,字典和集合)的完全解析的文章就介绍到这了,更多相关Python数据结构内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文