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

python – 从defaultdict获取原始密钥集

5b51 2022/1/14 8:22:57 python 字数 1543 阅读 545 来源 www.jb51.cc/python

有没有办法从defaultdict获取原始/一致的密钥列表,即使请求了非现有密钥? from collections import defaultdict >>> d = defaultdict(lambda: 'default', {'key1': 'value1', 'key2' :'value2'}) >>> >>> d.keys() ['key2', 'key1'] >>> d['bla'

概述

from collections import defaultdict
>>> d = defaultdict(lambda: 'default',{'key1': 'value1','key2' :'value2'})
>>>
>>> d.keys()
['key2','key1']
>>> d['bla']
'default'
>>> d.keys() # how to get the same: ['key2','key1']
['key2','key1','bla']
>>> [i for i in d if d[i]!=d.default_factory()]
['key2','key1']

时间与Jean建议的方法比较,

>>> def funct(a=None,b=None,c=None):
...     s=time.time()
...     eval(a)
...     print time.time()-s
...
>>> funct("[i for i in d if d[i]!=d.default_factory()]")
9.29832458496e-05
>>> funct("[k for k,v in d.items() if v!=d.default_factory()]")
0.000100135803223
>>> ###storing the default value to a variable and using the same in the list comprehension reduces the time to a certain extent!
>>> defa=d.default_factory()
>>> funct("[i for i in d if d[i]!=defa]")
8.82148742676e-05
>>> funct("[k for k,v in d.items() if v!=defa]")
9.79900360107e-05

总结

以上是编程之家为你收集整理的python – 从defaultdict获取原始密钥集全部内容,希望文章能够帮你解决python – 从defaultdict获取原始密钥集所遇到的程序开发问题。


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

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

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


联系我
置顶