Python列表语法帮助

时间:2011-03-02 01:38:54

标签: python list

results=[key for key, value in adictionary if str(key).startswith('target') 
    and value > 0 ]

我在这里尝试做的是选择所有键,如果字典中以target开头的键及其值大于0.但看起来有问题,请帮帮我〜

5 个答案:

答案 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)]