Python字典高效过滤:创建满足特定条件的新字典

python字典高效过滤:创建满足特定条件的新字典

本文将介绍如何高效地根据特定条件过滤Python字典,并创建两个新的字典。原始字典中的每个键值对将根据值中是否包含特定字符串而被分配到两个新字典中的一个。我们将使用 items() 方法遍历字典,并结合 any() 函数进行条件判断,以实现简洁高效的过滤。

使用 items() 方法和 any() 函数过滤字典

假设我们有一个字典 dct,我们希望根据其值中的特定字符串,将其拆分为两个新的字典 dict_C 和 dict_P。dict_C 包含值中包含 “23C1”, “23C2”, “24C2”, “24C1” 中任意一个字符串的键值对,而 dict_P 包含值中包含 “23P1”, “23P2”, “24P2”, “24P1” 中任意一个字符串的键值对。

以下是实现此功能的 Python 代码:

dct = {'48689': 'FINNIFTY02JAN24C20900', '46624': 'FINNIFTY09JAN24P20900', '40811':'NIFTY14DEC23C20750', '40812': 'NIFTY14DEC23P20750', '40813': 'NIFTY14DEC23C20800', '40814':'NIFTY14DEC23P20800', '40817': 'NIFTY14DEC23C20850', '40818': 'NIFTY14DEC23P20850', '40828':'NIFTY14DEC23C20900', '40832': 'NIFTY14DEC23P20900', '40834': 'NIFTY14DEC23C20950', '40839':'NIFTY14DEC23P20950'}dict_C = {}dict_P = {}arrC = ["23C1", "23C2", "24C2", "24C1"]arrP = ["23P1", "23P2", "24P2", "24P1"]for key, value in dct.items():    if any(x in value for x in arrC):        dict_C[key] = value    elif any(x in value for x in arrP):        dict_P[key] = valueprint("dict_C -", dict_C)print("dict_P -", dict_P)

代码解释:

快转字幕 快转字幕

新一代 AI 字幕工作站,为创作者提供字幕制作、学习资源、会议记录、字幕制作等场景,一键为您的视频生成精准的字幕。

快转字幕 357 查看详情 快转字幕

立即学习“Python免费学习笔记(深入)”;

初始化字典: 首先,我们创建两个空字典 dict_C 和 dict_P,用于存储过滤后的键值对。定义过滤条件: arrC 和 arrP 列表分别存储用于过滤 dict_C 和 dict_P 的字符串。遍历字典: 使用 dct.items() 方法遍历原始字典 dct,该方法返回一个包含键值对的迭代器。条件判断: 对于每个键值对,我们使用 any() 函数检查值中是否包含 arrC 或 arrP 中的任何一个字符串。any(x in value for x in arrC) 的含义是:对于 arrC 中的每一个字符串 x,如果 x 存在于 value 中,则 any() 函数返回 True。分配键值对: 如果 any(x in value for x in arrC) 返回 True,则将该键值对添加到 dict_C 中。如果 any(x in value for x in arrP) 返回 True,则将该键值对添加到 dict_P 中。

输出结果:

dict_C - {'48689': 'FINNIFTY02JAN24C20900', '40811': 'NIFTY14DEC23C20750', '40813': 'NIFTY14DEC23C20800', '40817': 'NIFTY14DEC23C20850', '40828': 'NIFTY14DEC23C20900', '40834': 'NIFTY14DEC23C20950'}dict_P - {'46624': 'FINNIFTY09JAN24P20900', '40812': 'NIFTY14DEC23P20750', '40814': 'NIFTY14DEC23P20800', '40818': 'NIFTY14DEC23P20850', '40832': 'NIFTY14DEC23P20900', '40839': 'NIFTY14DEC23P20950'}

总结

通过使用 items() 方法和 any() 函数,我们可以简洁高效地过滤 Python 字典,并根据特定条件创建新的字典。这种方法避免了冗余的循环操作,提高了代码的可读性和执行效率。在处理需要根据特定条件拆分字典的场景中,这种方法非常实用。

以上就是Python字典高效过滤:创建满足特定条件的新字典的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/614927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月11日 03:29:30
下一篇 2025年11月11日 03:30:36

相关推荐

  • Symfony 怎样把Neo4j节点转为数组

    最直接的方法是调用neo4j节点对象的properties()方法,它会返回包含所有属性的关联数组;2. 对于复杂场景,可通过自定义mapper服务或使用symfony serializer组件处理日期、标签、关系及嵌套结构;3. 为提升性能,应在cypher查询中只返回必要属性,并避免orm的额外…

    2025年12月10日
    000
  • PHP处理复选框:创建包含未选中复选框键值对的数组

    本文旨在解决PHP中处理复选框时,如何创建一个包含所有复选框(无论是否选中)的数组,其中未选中的复选框对应的值为0,选中的复选框对应的值为1。通过修改HTML表单中复选框的name属性,并结合PHP的$_POST数组处理,可以轻松实现这一目标,从而避免因缺失未选中复选框数据而导致的逻辑错误。 在PH…

    2025年12月10日
    000
  • PHP处理复选框:生成包含未选中复选框的键值对

    本文将详细介绍如何在使用PHP处理复选框时,确保获得一个完整的数组,其中包含所有复选框的状态,即使某些复选框未被选中。通常,未选中的复选框不会被包含在$_POST数组中,这可能会导致数据处理逻辑出现问题。本文将提供一种简单有效的解决方案,确保所有复选框的状态都被正确捕获。 修改HTML表单 关键在于…

    2025年12月10日
    000
  • PHP处理复选框:创建包含未选中复选框的键值对

    本文档旨在解决PHP处理复选框时,如何生成包含所有复选框状态(选中和未选中)的数组。通过修改HTML表单中复选框的命名方式,并结合PHP的$_POST方法,可以确保数组中包含每个复选框的键值对,其中“1”代表选中,“0”代表未选中。 解决复选框数组只包含选中项的问题,确保数据完整性,方便后续处理。 …

    2025年12月10日
    000
  • PHP数组键值字符串匹配与条件赋值教程

    本教程详细阐述了在PHP中如何遍历数组,并根据其键(key)是否等于特定的字符串值来执行相应的逻辑,例如为变量赋值。文章将深入探讨PHP数组键的特性、foreach循环的正确使用方法,并澄清常见的误区,如array_key_exists()和isset()在遍历场景下的适用性,旨在帮助开发者高效、准…

    2025年12月10日
    000
  • Symfony 如何将YAML配置转为PHP数组

    symfony通过yaml组件将yaml配置转换为php数组,1. 首先安装symfony/yaml组件;2. 使用yaml::parsefile()或yaml::parse()方法解析文件或字符串;3. 处理解析结果并进行错误捕获;4. 在实际项目中可用于加载自定义配置、处理用户上传、动态生成配置…

    2025年12月10日 好文分享
    000
  • Symfony 如何将调试信息转为数组

    要将symfony的dump()函数输出转换为程序可处理的php数组,必须绕过默认渲染机制,直接操作vardumper组件的内部结构;具体步骤是:1. 使用varcloner克隆变量生成data对象;2. 创建自定义arraydumper类继承abstractdumper,递归遍历data对象和st…

    2025年12月10日
    000
  • PHP怎样开发竞价排名系统?广告位拍卖逻辑

    竞价排名核心算法包括“出价 × 质量得分”排序和第二价格拍卖(gsp)计费,质量得分综合点击率、相关性和落地页体验;2. 公平性通过透明规则、gsp机制和质量得分保障,效果则通过提升广告相关性和用户价值实现平衡;3. php开发面临实时性与高并发挑战,需依赖缓存、数据库优化、异步处理、水平扩展和分布…

    2025年12月10日
    000
  • PHP怎样制作付费简历解析?人才库变现方案

    制作付费简历解析系统的核心在于整合第三方解析服务或自研模块,并结合支付与用户管理体系实现变现。1. 优先推荐整合第三方简历解析api,通过php调用接口获取结构化数据,实现高效准确的解析;2. 自研解析模块需处理多种文件格式、应用ocr及nlp技术提取信息,但开发难度高,适合有资源和技术积累的团队;…

    2025年12月10日
    000
  • PHP中根据数组键值进行条件判断与变量赋值

    本文详细阐述了在PHP中如何遍历数组,并根据数组键(key)的特定字符串值进行条件判断,进而动态地为其他变量赋值。通过foreach循环直接访问数组键,结合严格相等运算符===,可以高效地实现对指定键的识别与处理,即便数组中包含混合类型的键(字符串键与数字键)。本教程将提供清晰的代码示例,并探讨相关…

    2025年12月10日
    000
  • Symfony 如何将多语言文本转为数组

    symfony通过yaml或xml组件将多语言文本文件解析为php数组,便于直接访问结构化翻译数据;2. 使用yaml::parsefile()读取如messages.zh_cn.yaml文件内容并转换为数组;3. 通过translationarrayconverter服务按指定语言和域动态获取翻译…

    2025年12月10日
    000
  • 解决 PHP extract() 警告:安全处理 parse_url() 返回值

    本文深入探讨了 PHP 中常见的 extract() 函数警告,即当其参数非数组时引发的错误。特别关注 extract(parse_url($base)) 场景,解释了 parse_url() 在解析失败时返回 false 导致此警告的根本原因。教程提供了健壮的解决方案,通过显式检查 parse_u…

    2025年12月10日
    000
  • PHP数组键值匹配与条件逻辑实现指南

    本教程旨在指导PHP开发者如何高效地遍历数组,并根据数组键的特定字符串值执行条件逻辑。文章详细阐述了foreach循环在处理键值对时的用法,并通过实际代码示例,展示了如何精确比较数组键,从而灵活地根据不同键值分配变量或执行特定操作,提升代码的逻辑清晰度和功能性。 理解PHP数组键 在php中,数组既…

    2025年12月10日
    000
  • WordPress用户元数据计算与动态更新:实现派生字段的实用指南

    本教程详细讲解了如何在WordPress中根据用户提交的表单数据,计算并自动更新派生用户元数据。文章将涵盖从用户元数据获取、数据类型转换、正确更新到代码实现的关键步骤,旨在帮助开发者避免常见错误,高效管理和利用用户数据,确保派生字段的准确性和实时性。 在wordpress开发中,我们经常需要处理用户…

    2025年12月10日
    000
  • Symfony 怎样把HTTP头信息转为数组

    要将 symfony 的 http 头信息转换为数组,需调用 headers 的 all() 方法获取关联数组,再根据需要处理为简单键值对。1. 从 request 或 response 对象调用 headers->all() 方法,获得键为小写头名、值为数组的多维数组;2. 若需简化结构,遍…

    2025年12月10日
    000
  • PHP怎样实现付费API限流?令牌桶算法控制

    选择令牌桶算法实现api限流,是因为它允许突发请求、配置灵活且逻辑直观;相比漏桶算法,它在保障平均速率的同时支持短时高频请求,提升用户体验。2. 在php中高效管理令牌桶状态需依赖redis,利用其高性能内存读写、原子性lua脚本执行、hash结构存储及expire机制,确保并发安全与数据一致性。3…

    2025年12月10日
    000
  • Symfony 如何把OAuth数据转为数组

    将symfony中接收到的oauth数据转换为数组,核心方法是使用symfony serializer组件或手动映射。1. 使用serializer组件:通过注入serializerinterface,在服务或控制器中调用normalize方法将oauth对象(如oauthuserresponse)…

    2025年12月10日
    000
  • Symfony 怎么把二进制数据转关联数组

    面对不同类型的二进制数据,应根据其格式选择转换策略:若为php序列化数据,使用unserialize()但严禁处理不可信源;若为messagepack等紧凑格式,引入对应库如msgpack/msgpack进行解码;若为protobuf等带schema的协议,需生成php类并通过其方法解析并转为数组;…

    2025年12月10日
    000
  • 在Web应用中安全地保存富文本编辑器HTML内容到数据库的完整指南

    本教程旨在解决使用TinyMCE或CKEditor等富文本编辑器时,HTML格式内容无法正确保存到数据库的问题。我们将详细介绍如何通过JavaScript正确获取编辑器的完整HTML内容,并结合PHP后端进行安全有效的处理和存储,包括客户端数据提取、服务器端数据接收、以及至关重要的安全防护措施,确保…

    2025年12月10日
    000
  • 掌握富文本编辑器内容入库:JavaScript与PHP的协同实践

    本文详细介绍了如何解决使用TinyMCE或CKEditor等富文本编辑器时,HTML标签无法正确保存到数据库的问题。核心解决方案在于客户端JavaScript中利用tinymce.activeEditor.getContent()准确获取编辑器的完整HTML内容,并将其正确传递给服务器。同时,强调了…

    2025年12月10日
    000

发表回复

登录后才能评论
关注微信