当前位置: 首页 > 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}
    

总结:

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

相关文章:

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: …...

深度学习系列--04.梯度下降以及其他优化器

目录 一.梯度概念 1.一元函数 2.二元函数 3.几何意义上的区别 二.梯度下降 1.原理 2.步骤 3.示例代码(Python) 4.不同类型的梯度下降 5.优缺点 三.动量优化器(Momentum) 适用场景 1.复杂地形的优化问题 2.数据具有噪声的问…...

2022java面试总结,1000道(集合+JVM+并发编程+Spring+Mybatis)的Java高频面试题

1、面试题模块汇总 面试题包括以下十九个模块: Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示…...

Ubuntu MKL(Intel Math Kernel Library)

Get Intel oneAPI Math Kernel Library wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/79153e0f-74d7-45af-b8c2-258941adf58a/intel-onemkl-2025.0.0.940_offline.sh sudo sh ./intel-onemkl-2025.0.0.940_offline.sh MKL库的配置和使用-CSDN博客 CMak…...

消费电子产品中的噪声对TPS54202的影响

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时,也能帮助其他需要参考的朋友。如有谬误,欢迎大家进行指正。 一、概述 在白色家电领域,降压转换器的应用非常广泛,为了实现不同的功能就需要不同的电源轨。TPS542…...

第四十章:职场转折:突破困境,重新出发

从绍兴与岳父岳母温馨相聚归来后,小冷满心都是温暖与幸福,本以为生活与工作会继续平稳前行,然而,命运却悄然为他的职场之路埋下了转折的伏笔。 平静工作下的暗潮涌动 小冷所在的公司是一家专注于地图导航与位置服务的企业&#xf…...

c++ 不定参数,不定类型的 max,min 函数

MSVC\14.29.30133\include\utility(33,19): error C2064: 项不会计算为接受 2 个参数的函数 max min #include <iostream> #include <type_traits>// 自定义 min_gd&#xff08;支持任意类型和数量参数&#xff09; template <typename... Args> auto min_g…...

数据库的关系代数

关系就是表 属性&#xff08;Attribute&#xff09;是关系中的列.例如&#xff0c;关系 “学生” 中可能有属性 “学号”、“姓名”、“班级”。 元组(Tuple)是关系中的一行数据 1. 基本运算符 选择&#xff08;Selection&#xff09; 符号&#xff1a;σ 作用&#xff1a;从关…...

VSCode使用总结

1、VSCode左边资源窗口字体大小设置 方法一&#xff08;使用&#xff0c;已成功&#xff09; 进入安装目录Microsoft VS Code\resources\app\out\vs\workbench(如果是下载的压缩包&#xff0c;解压后resources\app\out\vs\workbench) 打开文件 workbench.desktop.main.css 搜…...

关系模型的数据结构及形式化定义

1 关系模型的核心结构 ①单一的数据结构&#xff08;关系&#xff09; 现实世界的实体以及实体间的各种联系均用关系来表示 ②逻辑结构&#xff08;二维表&#xff09; 从用户角度&#xff0c;关系模型中数据的逻辑结构是一张二维表&#xff0c;行代表元组&#xff08;记录&a…...

【C++入门讲解】

目录 ​编辑 --------------------------------------begin---------------------------------------- 一、C简介 二、开发环境搭建 主流开发工具推荐 第一个C程序 三、核心语法精讲 1. 变量与数据类型 2. 运算符大全 3. 流程控制结构 4. 函数深度解析 5. 数组与容…...

数据表中的视图操作

文章目录 一、视图概述二、为什么要使用视图三、创建视图四、查看视图 一、视图概述 小学的时候&#xff0c;每年都会举办一次抽考活动&#xff0c;意思是从每一个班级里面筛选出几个优秀的同学去参加考试&#xff0c;这时候很多班级筛选出来的这些同学就可以临时组成一个班级…...

BFS算法篇——广度优先搜索,探索未知的旅程(上)

文章目录 前言一、BFS的思路二、BFS的C语言实现1. 图的表示2. BFS的实现 三、代码解析四、输出结果五、总结 前言 广度优先搜索&#xff08;BFS&#xff09;是一种广泛应用于图论中的算法&#xff0c;常用于寻找最短路径、图的遍历等问题。与深度优先搜索&#xff08;DFS&…...

mongodb 使用内存过大分析

os 分析 内存使用 ps aux|head -1;ps aux|grep -v PID|sort -rn -k 4|head -10swap 使用 for i in $(ls /proc | grep "^[0-9]" | awk $0>100); do awk /Swap:/{aa$2}END{print "$i",a/1024"M"} /proc/$i/smaps;done| sort -k2nr | headmo…...

CNN-day5-经典神经网络LeNets5

经典神经网络-LeNets5 1998年Yann LeCun等提出的第一个用于手写数字识别问题并产生实际商业&#xff08;邮政行业&#xff09;价值的卷积神经网络 参考&#xff1a;论文笔记&#xff1a;Gradient-Based Learning Applied to Document Recognition-CSDN博客 1 网络模型结构 …...

登录到docker里

在Docker中登录到容器通常有两种情况&#xff1a; 登录到正在运行的容器内部&#xff1a;如果你想要进入到正在运行的容器内部&#xff0c;可以使用docker exec命令。 登录到容器中并启动一个shell&#xff1a;如果你想要启动一个容器&#xff0c;并在其中启动一个shell&…...

利用PHP爬虫开发获取淘宝分类详情:解锁电商数据新视角

在电商领域&#xff0c;淘宝作为中国最大的电商平台之一&#xff0c;其分类详情数据对于市场分析、竞争策略制定以及电商运营优化具有极高的价值。通过PHP爬虫技术&#xff0c;我们可以高效地获取这些数据&#xff0c;为电商从业者提供强大的数据支持。本文将详细介绍如何使用P…...

LeetCode 142题解|环形链表II的快慢指针法(含数学证明)

题目如下&#xff1a; 解题过程如下&#xff1a; 思路&#xff1a;快慢指针在环里一定会相遇&#xff0c;相遇结点到入环起始结点的距离 链表头结点到入环起始结点的距离&#xff08;距离看从左往右的方向&#xff0c;也就是单链表的方向&#xff09;&#xff0c;从链表头结点…...

[图文]课程讲解片段-Fowler分析模式的剖析和实现01

​ 解说&#xff1a; GJJ-004-1&#xff0c;分析模式高阶Fowler分析模式的剖析和实现&#xff0c;这个课是针对Martin Fowler的《分析模式》那本书里面的模式来讲解&#xff0c;对里面的模式来剖析&#xff0c;然后用代码来实现。 做到这一步的&#xff0c;我们这个是世界上独…...

Dify使用

1. 概述 官网:Dify.AI 生成式 AI 应用创新引擎 文档:欢迎使用 Dify | Dify GITHUB:langgenius/dify: Dify is an open-source LLM app development platform. Difys intuitive interface combines AI workflow, RAG pipeline, agent capabilities, model management, ob…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...