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

5.Python字典和元组:字典的增删改查、字典遍历、访问元组、修改元组、集合(set)

1. 字典(dict

字典是一个无序的键值对集合,每个键对应一个值。

字典的增、删、改、查:
  • 添加键值对:

    my_dict = {'a': 1, 'b': 2}
    my_dict['c'] = 3  # 添加新键'c',值为3
    print(my_dict)  # 输出:{'a': 1, 'b': 2, 'c': 3}
    
  • 修改值:

    my_dict['b'] = 5  # 修改键'b'对应的值
    print(my_dict)  # 输出:{'a': 1, 'b': 5, 'c': 3}
    
  • 删除键值对:

    del my_dict['a']  # 删除键'a'及其对应的值
    print(my_dict)  # 输出:{'b': 5, 'c': 3}
    
  • 查找值:

    value = my_dict.get('b')  # 获取键'b'对应的值
    print(value)  # 输出:5
    

    如果键不存在,可以指定默认值:

    value = my_dict.get('d', 'Not Found')  # 'd' 不存在,返回 'Not Found'
    print(value)  # 输出:Not Found
    
字典遍历:
  • 遍历键值对:

    for key, value in my_dict.items():print(key, value)
    # 输出:
    # b 5
    # c 3
    
  • 只遍历键:

    for key in my_dict.keys():print(key)
    # 输出:
    # b
    # c
    
  • 只遍历值:

    for value in my_dict.values():print(value)
    # 输出:
    # 5
    # 3
    

2. 元组(tuple

元组是不可变的有序集合,创建后不能修改内容。

访问元组:
  • 索引访问:

    my_tuple = (1, 2, 3, 4)
    print(my_tuple[1])  # 输出:2
    
  • 切片访问:

    print(my_tuple[1:3])  # 输出:(2, 3)
    
修改元组:

元组是不可变的,不能修改其中的元素。即不能通过索引修改值:

# 以下代码会抛出 TypeError
# my_tuple[1] = 5  

不过,你可以通过重新创建元组来“修改”其内容:

my_tuple = (1, 2, 3, 4)
new_tuple = my_tuple[:2] + (5,) + my_tuple[3:]
print(new_tuple)  # 输出:(1, 2, 5, 4)

3. 集合(set

集合是一个无序且不重复的元素集合,常用于去重。

创建集合:
my_set = {1, 2, 3, 4}
print(my_set)  # 输出:{1, 2, 3, 4}
集合的增、删、查:
  • 添加元素:

    my_set.add(5)  # 添加单个元素
    print(my_set)  # 输出:{1, 2, 3, 4, 5}
    
  • 添加多个元素:

    my_set.update([6, 7, 8])  # 添加多个元素
    print(my_set)  # 输出:{1, 2, 3, 4, 5, 6, 7, 8}
    
  • 删除元素:

    my_set.remove(5)  # 删除元素5,如果不存在会抛出 KeyError
    print(my_set)  # 输出:{1, 2, 3, 4, 6, 7, 8}my_set.discard(10)  # 尝试删除不存在的元素,不会抛出错误
    
  • 清空集合:

    my_set.clear()  # 清空集合
    print(my_set)  # 输出:set()
    
集合操作:
  • 集合的并集:

    set1 = {1, 2, 3}
    set2 = {3, 4, 5}
    union_set = set1 | set2  # 或使用 set1.union(set2)
    print(union_set)  # 输出:{1, 2, 3, 4, 5}
    
  • 集合的交集:

    intersection_set = set1 & set2  # 或使用 set1.intersection(set2)
    print(intersection_set)  # 输出:{3}
    
  • 集合的差集:

    difference_set = set1 - set2  # 或使用 set1.difference(set2)
    print(difference_set)  # 输出:{1, 2}
    
  • 集合的对称差集:

    symmetric_difference_set = set1 ^ set2  # 或使用 set1.symmetric_difference(set2)
    print(symmetric_difference_set)  # 输出:{1, 2, 4, 5}
    

总结:

  • 字典用于存储键值对,支持增、删、改、查操作,且可以遍历键、值和键值对。
  • 元组是不可变的有序集合,适用于需要保证数据不变的场景。访问方式类似于列表,但不可修改。
  • 集合是无序且不重复的元素集合,适用于去重和集合操作,如并集、交集等。
http://www.lryc.cn/news/533370.html

相关文章:

  • 深度学习系列--04.梯度下降以及其他优化器
  • 2022java面试总结,1000道(集合+JVM+并发编程+Spring+Mybatis)的Java高频面试题
  • Ubuntu MKL(Intel Math Kernel Library)
  • 消费电子产品中的噪声对TPS54202的影响
  • 第四十章:职场转折:突破困境,重新出发
  • c++ 不定参数,不定类型的 max,min 函数
  • 数据库的关系代数
  • VSCode使用总结
  • 关系模型的数据结构及形式化定义
  • 【C++入门讲解】
  • 数据表中的视图操作
  • BFS算法篇——广度优先搜索,探索未知的旅程(上)
  • mongodb 使用内存过大分析
  • CNN-day5-经典神经网络LeNets5
  • 登录到docker里
  • 利用PHP爬虫开发获取淘宝分类详情:解锁电商数据新视角
  • LeetCode 142题解|环形链表II的快慢指针法(含数学证明)
  • [图文]课程讲解片段-Fowler分析模式的剖析和实现01
  • Dify使用
  • 解锁 DeepSeek 模型高效部署密码:蓝耘平台全解析
  • 7.PPT:“中国梦”学习实践活动【20】
  • Linux系统-centos防火墙firewalld详解
  • 零基础都可以本地部署Deepseek R1
  • 通过Ollama本地部署DeepSeek R1以及简单使用的教程(超详细)
  • css实现长尾箭头(夹角小于45度的)
  • 封装descriptions组件,描述,灵活
  • OC-Block
  • 关于知识蒸馏的概念原理以及常见方法
  • C++轻量级桌面GUI库FLTK
  • C++20导出模块及使用