results=[key for key, value in adictionary if str(key).startswith('target')
and value > 0 ]
我在这里尝试做的是选择所有键,如果字典中以target开头的键及其值大于0.但看起来有问题,请帮帮我〜
答案 0 :(得分:3)
results=[key for key, value in adictionary.items() if str(key).startswith('target')
and value > 0 ]
答案 1 :(得分:2)
错过items()
ior iteritems()
您的dict访问权限。 iteritems
不会创建一个稍微快一点的临时列表。
results=[key for key, value in adictionary.iteritems() if str(key).startswith('target')
and value > 0 ]
答案 2 :(得分:0)
您需要使用items()
方法获取密钥和值。
[key for key, value in adictionary.items() if str(key).startswith('target') and value > 0]
答案 3 :(得分:0)
我使用字典的iteritems()方法。它返回一个迭代器,而不是生成像items()方法那样的完整列表。
results = [key for key, value in adictionary.iteritems() if str(key).startswith('target') and value > 0]
答案 4 :(得分:0)
startswith()比切片慢
我愿意:
results=[k for k,v in adictionary.iteritems()
if (k[0:7]=='target')==True==(v>0)]