python - 在迭代字典 python 时使用 if

标签 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']

以及有关如何仅获取其中一个输出而不是全部输出的任何线索。

最佳答案

您不应该(也不需要)迭代字典检查键来获取值:

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

Python dict(顺便说一句,您不应该将其用作变量名)专门为此用例而设计(即通过键访问值) )并且如果使用得当,速度会快得多:

# correct
return dct[key]

如果您不确定是否键入 dct,请使用 get:

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

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

关于python - 在迭代字典 python 时使用 if,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20954994/

相关文章:

python - for循环中python变量的范围

python - 使用 Python 3 上的任何数据结构检查一个组是否是其他组的子组的最有效方法

python - 将 Pandas 数据框单元格中的字典解析为新行单元格(新列)

python - 我可以将 DateTimeFields 与标签 "if"进行比较吗?

python - 使用python将一个csv文件的内容附加到另一个

javascript - Slick.js:如何使用数组编写 for 循环?

c# - 为什么我要使用 HashSet 而不是 Dictionary?

python - 在 pymysql 中使用正确的语法将 python 变量传递给查询

python - 根据使用 Pandas 保留其他列值的列对 DataFrame 中的日期进行排序

javascript - For循环创建无限对象树