加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

是否有Pythonic方法迭代“扩展”源列表?

发布时间:2020-12-20 12:10:01 所属栏目:Python 来源:网络整理
导读:我创建了一个生成器表达式,它构建了一个超过源键的字典,如下所示: def moreIter(names): for name in names: yield name yield name + "Bar"KEYS = ("a","b")src = {"a": 1,"aBar": 2,"b": 3,"bBar": 4,"c": 0,"cBar": 1,"d": 10}d = {key: src[key] for ke
我创建了一个生成器表达式,它构建了一个超过源键的字典,如下所示:

def moreIter(names):
    for name in names:
        yield name
        yield name + "Bar"

KEYS = ("a","b")

src = {"a": 1,"aBar": 2,"b": 3,"bBar": 4,"c": 0,"cBar": 1,"d": 10}
d = {key: src[key] for key in moreIter(KEYS)}

我想知道是否有更“pythonic”的方法来做这样的事情.似乎我遇到的所有标准库函数迭代遍历列表将返回与原始列表相等或更小的长度,但在这种情况下,我想迭代扩展的结果.

解决方法

您可以使用多级生成器:

src = {"a": 1,"bBar": 4}
d = {key: src[key] for item in 'ab' for key in (item,item+'Bar')}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读