您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

创建一个包含来自另一个字典的特定键值对的Python字典

5b51 2022/1/14 8:23:01 python 字数 1849 阅读 562 来源 www.jb51.cc/python

我有一些看起来像这样的代码: d = {'foo': True, 'bar': 42, 'baz': '!'} a = {'foo': d['foo'], 'bar': d['bar']} b = {'foo': d['foo'], 'baz': d['baz']} c = {'bar': d['bar'], 'baz': d['baz']} 当然有更好的方式来表达这一点.我实际上阅读了文档,希

概述

d = {'foo': True,'bar': 42,'baz': '!'}

a = {'foo': d['foo'],'bar': d['bar']}
b = {'foo': d['foo'],'baz': d['baz']}
c = {'bar': d['bar'],'baz': d['baz']}

当然有更好的方式来表达这一点.我实际上阅读了文档,希望字典的复制方法接受要包含在新字典中的键:

# I'd hoped that something like this would work...
a = d.copy('foo','bar')
b = d.copy('foo','baz')
c = d.copy('bar','baz')

我可以为此目的编写一个函数

copydict = lambda dct,*keys: {key: dct[key] for key in keys}

a = copydict(d,'foo','bar')
b = copydict(d,'baz')
c = copydict(d,'bar','baz')

有没有比上面更好的解决方案?

当然,有人可以发布一些惯用的代码,但我相信它不会更好/更快.迭代列表并按键从字典中获取项目的速度尽可能快.

一个建议是从keys参数中删除星号.参数解包会增加不必要的开销.将这些键作为元组传递应该没有问题.

总结

以上是编程之家为你收集整理的创建一个包含来自另一个字典的特定键值对的Python字典全部内容,希望文章能够帮你解决创建一个包含来自另一个字典的特定键值对的Python字典所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶