在迭代字典python时使用if

时间:2014-01-06 16:51:56

标签: python for-loop dictionary

我正在使用类似的东西:

dict = {
          'item_1':['1','2','3'], 
          'item_2':['4','5','6'],
          'item_3':['7','8','9']
        }
for item, value in dict.items():
    dictKey = 'item_1'
    if item == dictKey:
        print value

我希望有人可以解释我为什么会这样做:

item_1 ['1', '2', '3']
item_1 ['1', '2', '3']
item_1 ['1', '2', '3']

以及如何获得其中一个输出而不是所有输出的任何线索。

1 个答案:

答案 0 :(得分:2)

你不应该(并且不需要)遍历字典检查密钥以获取值:

# wrong
for k, v in dct.items():
    if k == key:
        return value

Python dict(顺便说一下,你不应该将它用作变量名)是专门为这个用例设计的 (即通过键访问值),并且是正确使用时要快得多:

# correct
return dct[key]

如果您不确定是否key in dct,请使用get

return dct.get(key) # return None if key not in dct

try:
    return dct[key]
except KeyError:
    # deal with error