将字典值添加到列表中?

新手上路,请多包涵

我有以下内容:

  list_of_values = []
 x = { 'key1': 1, 'key2': 2, 'key3': 3 }

我如何遍历字典并将这些值之一附加到该列表中?如果我只想附加“key2”的值怎么办。

原文由 user3674231 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 550
2 个回答

如果您只想附加一组特定的值,则无需遍历字典,只需将其添加到列表中即可

list_of_values.append(x["key2"])

但是,如果您坚持要遍历字典,则可以遍历键值对:

 for key, value in x.items():
   if key == "key2":
      list_of_values.append(value)

原文由 Colin Schoen 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你真的想遍历字典,我建议使用列表理解,从而创建一个新列表并插入 'key2'

 list_of_values = [x[key] for key in x if key == 'key2']

因为可以很容易地扩展到搜索多个关键字:

 keys_to_add = ['key2'] # Add the other keys to that list.
list_of_values  = [x[key] for key in x if key in keys_to_add]

这有一个简单的优点,即您可以一步创建结果,而无需多次追加。完成对字典的迭代后,您可以附加列表,只是为了让它变得有趣,您可以在没有 append 的情况下完成它,只需将新列表添加到旧列表:

 list_of_values += [x[key] for key in x if key in keys_to_add]

请注意我是如何使用 += 就地添加它们的,这完全等同于调用 list_of_values.append(...)

原文由 MSeifert 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进