当前位置: 首页 > article >正文

【python 字典(dict)和集合(set)】创建、访问、基本操作及各自的特点】

Python 中的字典(dict)和集合(set)都是内置的数据结构,它们各自有不同的用途和特点。以下是它们的创建、访问和基本操作,以及它们之间的区别和特点。

字典(Dict)

创建:

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

# 创建一个包含键值对的字典
my_dict = {'name': 'Alice', 'age': 25}

访问:

# 访问字典中的值
name = my_dict['name']  # 访问键为'name'的值

# 使用get方法访问,如果键不存在则返回None或指定的默认值
age = my_dict.get('age', 0)  # 如果'age'键不存在,则返回0

基本操作:

# 添加键值对
my_dict['gender'] = 'Female'

# 删除键值对
del my_dict['age']

# 修改键值对
my_dict['name'] = 'Bob'

# 遍历字典
for key, value in my_dict.items():
    print(key, value)

# 检查键是否存在
if 'name' in my_dict:
    print("Key 'name' exists.")

集合(Set)

创建:

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

# 创建一个包含元素的集合
my_set = {1, 2, 3, 4}

访问:
集合是无序的,不提供索引访问,但可以检查元素是否存在。

# 检查元素是否存在
if 3 in my_set:
    print("3 is in the set")

基本操作:

# 添加元素
my_set.add(5)

# 删除元素
my_set.discard(2)  # 移除元素,如果元素不存在不会报错
my_set.remove(4)   # 移除元素,如果元素不存在会报错

# 清空集合
my_set.clear()

# 遍历集合
for element in my_set:
    print(element)

# 集合运算
union_set = my_set.union({6, 7})  # 并集
intersection_set = my_set.intersection({1, 2, 3, 8})  # 交集
difference_set = my_set.difference({1, 2})  # 差集
symmetric_difference_set = my_set.symmetric_difference({1, 9})  # 对称差集

区别和特点

字典(Dict)特点:

  • 存储键值对。
  • 键必须是唯一的,值可以重复。
  • 键可以是任何不可变类型,如字符串、数字或元组。
  • 通过键来访问值。
  • 可变类型,可以添加、删除和修改键值对。
  • 用花括号 {} 表示。

集合(Set)特点:

  • 存储无序的唯一元素。
  • 元素必须是可哈希的,不能有可变类型,如列表。
  • 不能通过索引访问元素,但可以快速检查元素是否存在。
  • 可变类型,可以添加和删除元素。
  • 支持数学上的集合运算,如并集、交集、差集等。
  • 用花括号 {} 表示,但如果集合中的元素是可迭代的,需要在元素前后加上圆括号,例如 {(1, 2)}

总的来说,字典适合存储和操作键值对数据,而集合适合进行元素的唯一性和集合运算。字典提供了通过键快速访问值的能力,而集合则提供了快速的成员检查和集合运算功能。


http://www.kler.cn/a/447600.html

相关文章:

  • 基于微信小程序的乡村旅游系统
  • 单调栈基础用法
  • 阿里云虚拟主机ecs镜像如何转移到本地virtualbox上
  • C++ 智能指针(高频面试题)
  • 【C++】C++中的std::cerr详解
  • 本地缓存和Redis缓存 存储更新时间的更新套路
  • keil已有项目改工程名
  • 1387. 将整数按权重排序 中等
  • 3大Excel免费功能
  • 吉快科技荣膺“金边奖·最佳大模型一体机”,引领AI边缘新时代
  • 江苏计算机专转本 技能Mysql知识点总结(二)
  • C05S07-Tomcat服务架设
  • 15款行业大数据报告下载网站
  • H5 ios软键盘弹起遮挡输入框
  • #渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
  • macOS 配置 vscode 命令行启动
  • pat乙级1072 开学寄语
  • WebRTC服务质量(07)- 重传机制(04) 接收NACK消息
  • 基于微信小程序的消防隐患在线举报系统
  • Tensor
  • sh cmake-linux.sh -- --skip-license --prefix = $MY_INSTALL_DIR
  • Javascript元编程
  • 2024年CCF 非专业级软件能力认证CSP-J/S 第二轮( 提高组) 染色(color)
  • HDR视频技术之八:色域映射
  • Kafka学习篇
  • 如何使用Python编写有效的网页抓取脚本以获取和处理数据?