五步让你掌握Python数据结构( 二 )

不可变但不严格
虽然元组本身是不可变的,但它们可以包含可变元素,例如列表 。
# 包含可变列表的元组complex_tuple = (1, 2, [3, 4])请注意,虽然无法更改元组本身,但可以修改其中的可变元素 。
第三步:掌握 Python 字典Python 中的字典是什么?
Python 中的字典是一种无序、可变的数据类型,用于存储唯一键到值的映射 。字典用大括号编写{ },由逗号分隔的键值对组成 。
例如:
student = {"name": "Michael", "age": 22, "city": "Chicago"}字典对于以结构化方式存储数据和通过键访问值非常有用 。
创建字典
字典键必须是不可变的对象,例如字符串、数字或元组 。字典值可以是任何对象 。
student = {"name": "Susan", "age": 23}prices = {"milk": 4.99, "bread": 2.89}操作字典
可以通过按键访问、添加、更改和删除元素 。
# 根据键访问元素print(student["name"])# 增加一个新的键值对student["major"] = "computer science"# 改变一个的键值student["age"] = 25# 删除一个键值对del student["city"]字典方法
一些有用的内置方法包括:

  • keys()- 返回键列表
  • values()- 返回值列表
  • items()- 返回(键,值)元组
  • get()- 返回键的值,避免 KeyError
  • pop()- 删除键并返回值
  • update()- 添加多个键值
示例
scores = {"Francis": 95, "John": 88, "Daniel": 82}# 增加新成绩scores["Zoey"] = 97# 删除John的成绩scores.pop("John")# 访问Daniel的成绩print(scores.get("Daniel"))# 打印所有同学的名字print(scores.keys())第 4 步:Python 中的集合Python 中的集合是什么?
Python 中的集合是唯一的、不可变对象的无序、可变的集合 。集合是用大括号编写的{ },但与字典不同,集合没有键值对 。
例如:
numbers = {1, 2, 3, 4}集合对于成员资格测试、消除重复和数学运算非常有用 。
创建一个集合
可以通过将列表传递给构造函数来从列表创建集合set():
my_list = [1, 2, 3, 3, 4]my_set = set(my_list) # {1, 2, 3, 4}集合可以包含混合数据类型,例如字符串、布尔值等 。
操作集合
可以在集合中添加和删除元素 。
numbers.add(5) numbers.remove(1)集合运算
一些有用的集合运算包括:
  • union()- 返回两个集合的并集
  • intersection()- 返回集合的交集
  • difference()- 返回集合之间的差异
  • symmetric_difference()- 返回对称差值
集合示例
A = {1, 2, 3, 4}B = {2, 3, 5, 6}# Union - 合运算print(A | B) # 交运算print(A & B)# 差运算print(A - B)# 对称差运算print(A ^ B)第 5 步:列表、元组、字典和集合的比较 
数据结构
是否有序
可变的
重复元素
用例
列表
是的
是的
是的
存储序列
元组
是的

是的
存储不可变序列
字典

是的
键:无
值:是
存储键值对
集合

是的

消除重复、会员测试
何时使用每种数据结构
 
  • 使用列表来获取有序的、基于序列的数据 。对于堆栈/队列很有用 。
  • 使用元组来表示有序的、不可变的序列 。当您需要不应更改的固定元素集合时很有用 。
  • 使用字典来存储键值数据 。对于存储相关属性很有用 。
  • 使用集合来存储唯一元素和数学运算 。




推荐阅读