Python 课程2-資料結構

前言

在现代编程中,数据结构是处理和管理数据的基础,无论是进行数据分析、开发软件应用还是处理复杂的数据运算,掌握有效的数据结构可以极大提高效率和解决问题的能力。Python 作为一门高级且灵活的语言,内置了多种强大的数据结构,使程序设计变得更加简单且具有扩展性。

在本教程中,我们将深入探讨 Python 中的四大常见数据结构:列表(List)元组(Tuple)字典(Dictionary)集合(Set)。每一种数据结构都有其特定的用途和操作方式,学会如何选择和使用这些数据结构,将使你能更加高效和清晰地处理数据。

本文的目标是提供详细且易于理解的教程,适合初学者学习,也适合有一定经验的开发者加深对数据结构的理解。我们将从基本的概念开始,逐步介绍每种数据结构的创建、操作和应用实例,帮助你全面掌握这些核心工具。

希望通过这篇教程,你不仅能理解 Python 数据结构的概念,还能学会灵活运用它们来处理实际问题,并进一步提升你的编程技能。

目录

  1. 列表(List)

    • 创建列表
    • 列表操作(增、删、改、查)
    • 列表切片
    • 列表推导式
  2. 元组(Tuple)

    • 创建与使用元组
    • 元组与列表的区别
  3. 字典(Dictionary)

    • 创建字典
    • 字典操作(增、删、查、改)
    • 遍历字典
  4. 集合(Set)

    • 创建集合
    • 集合操作(交集、并集、差集)

1. 列表(List)

创建列表

        Python 中的 列表(List) 是一种可变的、能够容纳多种数据类型的有序集合。列表使用方括号 [] 表示,元素之间用逗号分隔。

# 创建一个空列表
empty_list = []

# 创建一个包含多个元素的列表
fruits = ["苹果", "香蕉", "橙子"]

# 列表可以包含不同的数据类型
mixed_list = [1, "Python", True, 3.14]

列表操作(增、删、改、查)

  1. :使用 append() 方法在列表末尾添加元素,或使用 insert() 方法在指定位置插入元素。
    # 在列表末尾添加元素
    fruits.append("葡萄")
    print(fruits)  # ['苹果', '香蕉', '橙子', '葡萄']
    
    # 在指定位置插入元素
    fruits.insert(1, "菠萝")
    print(fruits)  # ['苹果', '菠萝', '香蕉', '橙子', '葡萄']
    

  2. :使用 remove() 方法删除特定元素,或使用 pop() 方法根据索引删除元素。 del 关键字也可以直接删除指定索引的元素。
    # 移除指定元素
    fruits.remove("香蕉")
    print(fruits)  # ['苹果', '菠萝', '橙子', '葡萄']
    
    # 移除指定位置的元素
    fruits.pop(2)
    print(fruits)  # ['苹果', '菠萝', '葡萄']
    
    # 使用 del 删除
    del fruits[1]
    print(fruits)  # ['苹果', '葡萄']
    

  3. :可以直接通过索引修改列表中的元素。
    fruits[1] = "芒果"
    print(fruits)  # ['苹果', '芒果']
    

  4. :可以使用索引获取列表中的元素,或使用 index() 方法查找元素的位置。
# 获取第一个元素
print(fruits[0])  # '苹果'

# 查找元素的索引位置
print(fruits.index("芒果"))  # 1

 列表切片

Python 支持对列表进行切片操作,通过 start:stop:step 的形式提取部分列表元素。

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 获取索引 2 到 5 之间的元素
print(numbers[2:6])  # [2, 3, 4, 5]

# 每隔一个元素提取
print(numbers[::2])  # [0, 2, 4, 6, 8]

# 反转列表
print(numbers[::-1])  # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

 列表推导式

列表推导式是一种简洁的语法,可以基于现有列表创建新的列表,并且支持条件筛选。

# 基于范围创建一个列表
squares = [x ** 2 for x in range(10)]
print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# 只保留偶数平方
even_squares = [x ** 2 for x in range(10) if x % 2 == 0]
print(even_squares)  # [0, 4, 16, 36, 64]


2. 元组(Tuple)

创建与使用元组

        元组(Tuple) 是一种不可变的有序集合,使用小括号 () 表示。与列表类似,但一旦创建后,元组中的元素不能被修改。

# 创建一个空元组
empty_tuple = ()

# 创建一个包含元素的元组
colors = ("红色", "蓝色", "绿色")

# 单个元素的元组要加上逗号
single_element_tuple = (42,)

 元组中的元素可以通过索引来访问,和列表一样。

# 访问元组中的元素
print(colors[0])  # '红色'

元组与列表的区别

  1. 可变性

    • 列表是可变的,允许增、删、改操作。
    • 元组是不可变的,创建后无法修改。
  2. 性能

    • 元组比列表在某些操作上更快,因为它们是不可变的,系统不需要处理潜在的改变。
  3. 用例

    • 列表常用于需要频繁修改的数据。
    • 元组常用于保证数据不被修改的情况,如函数的返回值、固定的数据组合。


3. 字典(Dictionary)

创建字典

        字典(Dictionary) 是一种无序的键值对集合,每个键(key)与一个值(value)关联。字典使用大括号 {} 表示,键和值之间使用冒号 : 分隔。

# 创建一个空字典
empty_dict = {}

# 创建一个包含元素的字典
student = {"姓名": "张三", "年龄": 20, "性别": "男"}

字典操作(增、删、查、改)

  1. :通过给键赋值来添加新元素。
    student["学号"] = "S12345"
    print(student)  # {'姓名': '张三', '年龄': 20, '性别': '男', '学号': 'S12345'}
    
  2. :使用 delpop() 方法删除指定键值对。
    # 使用 del 删除键
    del student["性别"]
    print(student)  # {'姓名': '张三', '年龄': 20, '学号': 'S12345'}
    
    # 使用 pop 删除键并返回其值
    age = student.pop("年龄")
    print(age)  # 20
    
  3. :通过键访问对应的值,或者使用 get() 方法查找值。
    print(student["姓名"])  # '张三'
    
    # 使用 get 查找键,避免键不存在时报错
    print(student.get("性别", "未知"))  # '未知'
    
  4. :直接通过键来修改值。
    student["姓名"] = "李四"
    print(student)  # {'姓名': '李四', '学号': 'S12345'}
    

遍历字典

        字典可以使用 items() 方法遍历所有键值对,也可以使用 keys()values() 方法分别遍历键或值。

# 遍历键值对
for key, value in student.items():
    print(f"{key}: {value}")

# 遍历键
for key in student.keys():
    print(key)

# 遍历值
for value in student.values():
    print(value)

4. 集合(Set)

创建集合

集合(Set) 是一种无序、无重复元素的集合,使用大括号 {} 表示。

# 创建一个空集合
empty_set = set()

# 创建一个包含元素的集合
fruits_set = {"苹果", "香蕉", "橙子", "苹果"}
print(fruits_set)  # {'橙子', '香蕉', '苹果'},自动去重
集合操作(交集、并集、差集)

集合提供了多种运算操作,包括交集、并集、差集等。

  1. 交集&intersection() 返回两个集合的交集(共同元素)。
    set1 = {1, 2, 3}
    set2 = {2, 3, 4}
    print(set1 & set2)  # {2, 3}
    
  2. 并集|union() 返回两个集合的并集(所有元素)。
    print(set1 | set2)  # {1, 2, 3, 4}
    
  3. 差集-difference() 返回只存在于一个集合中的元素。
    print(set1 - set2)  # {1}
    

5.结论

        通过本教程,读者可以深入了解 Python 中的四大核心数据结构——列表、元组、字典和集合。这些数据结构提供了灵活的数据存储和处理方式,无论是增删改查还是进行复杂的集合运算,Python 都能轻松应对。掌握这些数据结构,将大大提高你在处理数据时的效率与灵活性。通过多加练习与应用,这些概念将成为你日常开发中的强大工具。

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值