pur*_*duc 6 python dictionary python-3.x dictionary-comprehension
我需要提取其值超过某个条件的字典的那些键.基本上,我想这样做,只是以更短,更pythony的方式:
keys=[]
for key in dict:
if dict[key]==True:
keys.append(key)
Run Code Online (Sandbox Code Playgroud)
这是我最初的想法,但它引发了一个ValueError:
[key for (key,val) in map if val==True]
Run Code Online (Sandbox Code Playgroud)
我暂时想出了这个,但我不禁觉得它不是很好:
[key for key in map.keys() if map[key]==True]
Run Code Online (Sandbox Code Playgroud)
是否有一个不那么混乱的方式呢?也许显而易见的是我明显失踪了?
谢谢!
小智 5
这是一种获得具有真实值的键的方法,它比理解更短、更清晰(虽然理解并不糟糕):
>>> dct = {0:False, 1:True, 2:False, 3:True}
>>> list(filter(dct.get, dct))
[1, 3]
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4398 次 |
| 最近记录: |