Python 中在两个字典中查找公共键

news2024/12/26 22:32:57

Python 中要在两个词典中查找公共键:

  1. 使用 dict.keys() 方法获取每个字典的键的视图对象。
  2. 使用 & 符号获取常用键。
  3. 使用 list() 类将结果转换为列表对象。
dict1 = {'name': 'jiyik', 'topic': 'Python', 'salary': 100}
dict2 = {'name': 'alice', 'salary': 100, 'experience': 5}

common_keys = list(dict1.keys() & dict2.keys())
print(common_keys)  # 👉️ ['salary', 'name']

# ----------------------------------------------

common_k_v = {key: value for key, value in dict1.items()
              if key in dict2}

# 👇️ {'name': 'jiyik', 'salary': 100}
print(common_k_v)

dict.keys 方法返回字典键的新视图。

dict1 = {'name': 'jiyik', 'topic': 'Python', 'salary': 100}

# 👇️ dict_keys(['name', 'topic', 'salary'])
print(dict1.keys())

视图对象是类似集合的对象,可以直接用于返回两个对象共有的元素。

dict1 = {'name': 'jiyik', 'topic': 'Python', 'salary': 100}
dict2 = {'name': 'alice', 'salary': 100, 'experience': 5}

common_keys = list(dict1.keys() & dict2.keys())
print(common_keys)  # 👉️ ['salary', 'name']

符号 & 返回一个新集合,其中包含两个集合对象共有的元素(交集)。

最后一步是使用 list() 类将集合对象转换为列表。

或者,我们可以使用列表推导。

使用列表理解在两个词典中查找公共键

要在两个词典中查找公共键:

  1. 使用列表推导式遍历第一个字典。
  2. 检查每个键是否存在于第二个字典中并返回结果。
  3. 新列表将只包含字典中的常用键。
dict1 = {'name': 'jiyik', 'topic': 'Python', 'salary': 100}
dict2 = {'name': 'alice', 'salary': 100, 'experience': 5}


common_keys = [key for key in dict1
               if key in dict2]
print(common_keys) # 👉️ ['name', 'salary']

我们使用列表推导来迭代第一个字典。

列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。

在每次迭代中,我们使用 in 运算符来检查键是否存在于第二个字典中。

与字典一起使用时,in 运算符会检查字典对象中是否存在指定键。

如果我们需要获取包含公共键和值的字典,请使用字典推导。

dict1 = {'name': 'jiyik', 'topic': 'Python', 'salary': 100}
dict2 = {'name': 'alice', 'salary': 100, 'experience': 5}


common_k_v = {key: value for key, value in dict1.items()
              if key in dict2}

# 👇️ {'name': 'jiyik', 'salary': 99}
print(common_k_v)

字典推导列表推导非常相似。

他们对字典中的每个键值对执行一些操作,或者选择满足条件的键值对的子集。

在每次迭代中,我们检查当前键是否存在于另一个字典中并返回键值对。

或者,我们可以使用简单的 for 循环。

使用 for 循环查找两个字典中的公共键

要在两个词典中查找公共键:

  1. 声明一个存储空列表的新变量。
  2. 使用 for 循环遍历第一个字典。
  3. 检查每个键是否包含在第二个字典中。
  4. 将匹配的键附加到列表中。
dict1 = {'name': 'jiyik', 'topic': 'Python', 'salary': 100}
dict2 = {'name': 'alice', 'salary': 100, 'experience': 5}

common_keys = []

for key in dict1:
    if key in dict2:
        common_keys.append(key)

print(common_keys)  # 👉️ ['name', 'salary']

我们使用 for 循环遍历第一个字典。

在每次迭代中,我们检查当前键是否存在于第二个字典中。

如果满足条件,我们使用 list.append() 方法将键追加到列表中。list.append() 方法将一个项目添加到列表的末尾。

my_list = ['fql', 'jiyik']

my_list.append('com')

print(my_list)  # 👉️ ['fql', 'jiyik', 'com']

选择哪种方法是个人喜好的问题。 我会使用列表推导,因为我发现它们非常直接且易于阅读。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

R语言探索BRFSS数据可视化

设定 加载包 最近我们被客户要求撰写关于BRFSS数据的研究报告,包括一些图形和统计输出。在本实验中,我们将使用dplyr软件包探索数据,并使用ggplot2软件包对其进行可视化以进行数据可视化 library(ggplot2) library(dplyr) 载入资料 load…

初识Netty框架

总体概述 Netty作为一款网络通信框架,底层封装了NIO。我们在使用Netty时,无需再关注NIO细节。下图为Netty处理流程图: 应用程序中使用Netty作为网络通信框架后,会形成一条PipeLine链,PipeLine链上有一个一个的事件处…

buuctf10(异或注入中文字符绕过preg_match伪随机数漏洞seed)

目录 [WUSTCTF2020] 颜值成绩(异或注入) [Zer0pts2020]Can you guess it?(中文字符绕过preg_match) [FBCTF2019]RCEService(/bin/调用命令 || 回溯绕过preg_match) [GKCTF 2021]easycms(后台弱口令&任意文件下载) [GWCTF 2019]枯燥的抽奖(伪随机数漏洞seed) [MRCTF20…

msprofiler 性能调优命令行实战(口罩识别推理)

案例介绍 本案例使用口罩识别推理程序作为例子进行演示,硬件平台是华为昇腾310设备(Ascend 310),该口罩识别使用目标检测中SSD模型,检测的结果有两个类别:戴口罩的脸、没带口罩的脸。成功执行推理程序后我们对其进行了推理调优&a…

连续7年领跑!在华为云桌面,藏了一盘数字办公的大棋

作者 | 曾响铃 文 | 响铃说 连续7年领跑!在国内虚拟客户端计算软件市场,华为云再度占据行业第一的位置,力压Citrix、Microsoft和VMware等全球知名厂商。 所谓的虚拟客户端计算软件市场,简单来理解就是云桌面市场。伴随着数字办…

Oracle报错:ORA-28001:口令已失效

一、链接Oracle报错 :ORA-28001:口令已失效 解决办法 原因:Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录 解决方式: 方式一&#xf…

R语言可视化探索BRFSS数据并逻辑回归Logistic回归预测中风

第1部分:关于数据 行为风险因素监视系统(BRFSS)是美国的年度电话调查。最近我们被客户要求撰写关于BRFSS的研究报告,包括一些图形和统计输出。BRFSS旨在识别成年人口中的危险因素并报告新兴趋势。例如,询问受访者饮食…

Python 并发编程

一.Python 对并发编程的支持 多线程:threading,利用CPU和IO可同时执行的原理,让CPU不会干巴巴等待IO完成,而是切换到其他Task(任务),进行多线程的执行。多进程:multiprocessing&…

微前端总结

微前端概述 微前端概念是从微服务概念扩展而来的,摒弃大型单体方式,将前端整体分解为小而简单的块,这些块可以独立开发、测试和部署,同时仍然聚合为一个产品出现在客户面前。可以理解微前端是一种将多个可独立交付的小型前端应用…

使用极限学习机进行股市预测(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 极限学习机(Extreme Learning Machine,ELM)作为前馈神经网络学习中一种全新的训练框架,在行为识别、情…

EPICS -- 使用asynPortDriver类编写示一个示例程序

本示例展示了如何使用asynPortDriver类编写一个EPICS端口驱动程序的示例。 这个驱动程序参数库中一个有5个参数,分别支持5个EPICS记录。 如下是具体步骤: 1) 用makeBaseApp.pl脚本建立这个IOC应用程序的框架: [blctrlmain-mach…

IDEA中如何实现git的cherry-pick可视化操作?

目录 问题现象: 问题分析: 解决方法: 拓展:如何回退提交记录? 问题现象: 今天在学习了git的cherry-pick功能,于是引出了一个问题: IDEA中如何实现git的cherry-pick可视化操作&am…

【Docker学习教程系列】7-如何将本地的Docker镜像发布到阿里云

在上一篇中,我们使用docker commit 命令,创建了一个带有vim的Ubuntu镜像。那么怎么将这个镜像分享出去呢?本文就来讲解如何将本地的docker镜像发布到阿里云上。 本文主要内容: 1:本地镜像发布到阿里云流程 2&#xf…

Linux网络原理与编程(4)——第十四节 传输层协议

目录 前置知识 再谈端口号 几个函数 netstat telnet UDP报文 UDP协议端格式 UDP首部: UDP的特点 UDP的缓冲区 TCP报文详解 Tcp报头详解 传输层是在应用层的下面一层,我们在讲解传输层协议之前,先来说一说一些前置知识即命令函数等…

看完就会flink基础API

文章目录一、执行环境(Execution Environment)1、创建执行环境2、执行模式(Execution Mode)3、触发程序执行二、源算子(Source)1、数据源类准备2、从集合中读取数据3、从文件中读取数据4、从Socket中读取数据5、从Kafka中读取数据…

ISCSLP 2022 Program|希尔贝壳邀您参加第十三届中文口语语言处理国际会议

第十三届中文口语语言处理国际会议将于2022年12月11-14日(本周日~下周三)正式开启,本次会议中的部分Session将通过语音之家视频号进行线上直播,欢迎大家参加! 官网:www.iscslp2022.org 大会简介 中文口语…

ABAP学习笔记之——第十二章:SALV

一、概要 在Net Weaver 2004 平台上集合了利用函数和 GRID 的功能发布的 SALV 包程序 (SALV也称为 New ALV)。SALV 可以像利用函数生成 ALV 的不用创建屏幕就可以调用的全屏式ALV,还可以利用控制器在屏幕的控制器中显示 ALV。利用GRID 的ALV 虽然不能注册成 Batch …

速卖通知识产权规则介绍,如何才能规避侵权的问题?

最近有商家咨询到我,关于速卖通对商品知识产权是怎么评判的,今天就来给大家科普一下平台关于知识产权的规则介绍 速卖通平台严禁用户未经授权发布、销售涉嫌侵犯第三方知识产权的商品或发布涉嫌侵犯第三方知识产权的信息。 若卖家发布涉嫌侵犯第三方知…

从股票市场选择配对的股票:距离计算方法

我们来看看如何定义距离的计算方法。 回想一下,在共同趋势模型中,协整的必要条件是从共同趋势得到的新息序列必须完全相关。APT中的共同因子回报就理解成是从共同趋势得到的新息序列,因此,新息序列之间的相关系数就是共同因子回报…

网关性能大PK,Spring Cloud Gateway让人大失所望

现在的架构基本都是使用微服务的,而网关作为微服务的统一门户在架构模式中用得越来越多,API网关是所有客户端的单一入口点。 API网关模式是微服务体系结构的一个很好的起点,因为它能够将特定的请求路由到我们从整体上分离的不同服务。事实上…