MST

星途 面试题库

面试题:Python中集合与字典在数据结构特性上的差异

请详细阐述Python中集合(set)与字典(dict)在数据结构特性上有哪些不同,例如从存储方式、元素唯一性、访问方式等方面进行说明,并各举一个简单的使用示例。
45.3万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

存储方式

  • 集合(set):集合是无序的,它以哈希表为基础存储元素,每个元素通过哈希值来确定存储位置。集合只存储元素本身,不存储与元素相关的额外信息。
  • 字典(dict):字典也是基于哈希表存储数据,但它存储的是键值对(key - value)。每个键通过哈希值确定存储位置,值与键相关联存储。

元素唯一性

  • 集合(set):集合中的元素具有唯一性,即集合中不会出现重复的元素。当添加已存在的元素时,集合不会发生变化。
  • 字典(dict):字典中的键具有唯一性,不能有重复的键。但值可以重复,不同的键可以对应相同的值。

访问方式

  • 集合(set):集合本身是无序的,不能通过索引来访问元素。通常用于检查元素是否存在(使用in关键字)、进行集合运算(如并集、交集、差集等)。
  • 字典(dict):字典通过键来访问对应的值。只要知道键,就可以快速获取对应的值。

使用示例

集合(set)示例

# 创建集合
s = {1, 2, 3, 3}  # 重复的3不会被添加
print(s)  # 输出: {1, 2, 3}

# 检查元素是否在集合中
print(2 in s)  # 输出: True

# 集合运算
s1 = {1, 2, 3}
s2 = {3, 4, 5}
union_set = s1.union(s2)  # 并集
print(union_set)  # 输出: {1, 2, 3, 4, 5}

字典(dict)示例

# 创建字典
d = {'name': 'Alice', 'age': 25}

# 通过键访问值
print(d['name'])  # 输出: Alice

# 添加或修改键值对
d['city'] = 'New York'
print(d)  # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}