前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python在生物信息学中的应用:字典推导式

Python在生物信息学中的应用:字典推导式

作者头像
简说基因
发布2024-02-21 16:35:41
620
发布2024-02-21 16:35:41
举报
文章被收录于专栏:简说基因简说基因

我们想依据字典中的键或值过滤字典。

解决方案

可以利用字典推导式(dictionary compehension)轻松解决。例如:

代码语言:javascript
复制
prices = {
'ACME': 45.23,
'AAPL': 612.78,
'IBM': 205.55,
'HPQ': 37.20,
'FB': 10.75
}
# 依据值过滤
p1 = {key: value for key, value in prices.items() if value > 200}
# 依据键过程
tech_names = {'AAPL', 'IBM', 'HPQ', 'MSFT'}
p2 = {key: value for key, value in prices.items() if key in tech_names}

讨论

大多数情况下,字典推导式可以解决的问题也可以通过创建元组然后将其传递给 dict() 函数解决。例如:

代码语言:javascript
复制
p1 = dict((key, value) for key, value in prices.items() if value > 200

但是,字典推导式方案更为清晰,其运行速度也要快很多。

有时候,完成同一件事情可以有多种方法。例如解决方案中的第二个例子可以重写成:

代码语言:javascript
复制
# 依据键过程
tech_names = { 'AAPL', 'IBM', 'HPQ', 'MSFT' }
p2 = { key:prices[key] for key in prices.keys() & tech_names }

但根据实践,这种方案的速度也比较慢。在平时的使用过程中,采用最开始的方法就可以了。

参考

  • 《Python Cookbook》第三版
  • http://python3-cookbook.readthedocs.org/zh_CN/latest/
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 简说基因 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档