【问题标题】:Iterate a list in a dictionary, if the list exists in the dictionary. In Python如果字典中存在列表,则迭代字典中的列表。在 Python 中
【发布时间】:2021-08-19 10:45:02
【问题描述】:

我有一个格式如下的字典:(在 Python 中)

some_dict = {
 'some_list': ['val1', 'val2', 'val3']
}

键“some_list”并不总是存在,但当它存在时,我想循环它的值。 为此,我目前正在执行以下操作:

if 'some_list' in some_dict:
 for value in some_dict['some_list']:
  #Run some code using value

这是实现这一目标的最佳/最简单的方法,还是有一种方法可以检查是否存在并在一行中循环?

【问题讨论】:

  • 这没有错。为什么要关心行数?
  • 使用get 和默认空列表for value in some_dict.get('some_list', []):?但我不认为它更清楚。
  • @juanpa.arrivillaga 我不一定想要更少的行。我只是认为可能有一种方法可以定义一个循环,其中代码知道它应该在列表不存在时跳过它,而不是引发错误。
  • 这个也和我的一样。它是可读的。

标签: python loops dictionary if-statement iteration


【解决方案1】:

您的代码看起来不错,除了第 2 行中缺少冒号

if 'some_list' in some_dict.keys():
 for value in some_dict['some_list']:
  #Run some code using value

【讨论】:

  • 感谢您的关注。我更改了我的问题以包含它。
【解决方案2】:

你的代码没有错,反正用get()就可以了

for value in some_dict.get('some_list', []):
   #Run some code using value

如果 key some_list 不存在或为空,则绕过 sn-p

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 2015-09-28
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多