【问题标题】:extract all keys of a dictionary of dictionaries as a list or np.array将字典字典的所有键提取为列表或 np.array
【发布时间】:2021-01-04 01:18:21
【问题描述】:

输入:所有键都是整数的字典字典。嵌套字典中的值是不相关的。

所需输出(outer_key, inner_key) 对的列表或 np.array

例子:

dict_of_dicts = {0: {1: "crap", 2: "crap", 3: "crap"}, 4: {5: "crap", 1: "crap"}}

我需要一个输出,例如

key_pairs = [(0,1), (0,2), (0,3), (4,5), (4,1)]

import numpy as np 
key_pairs = np.array([[0,1], [0,2], [0,3], [4,5], [4,1]])

对的顺序并不重要,显然(dict_of_dicts 没有顺序,毕竟),所以

key_pairs = np.array([[0,2], [0,1], [0,3], [4,5], [4,1]])

例如,仍然可以工作。关于速度,一方面这必须执行几十万次,但另一方面,所有 dicts 的 dicts 都相当小(大约十几个密钥对)。因此,我猜,可读性比速度更重要。当然,两者都很好????

【问题讨论】:

  • 您对此任务的具体问题是什么?

标签: python arrays numpy dictionary


【解决方案1】:

您可以使用嵌套列表推导:

key_pairs = [(k1, k2) for k1, v in dict_of_dicts.items() for k2 in v.keys()]
print(key_pairs)

输出:

[(0, 1), (0, 2), (0, 3), (4, 5), (4, 1)]

【讨论】:

  • 直到您可以在列表推导中嵌套 for 语句。谢谢!
  • @DeltaIV 不用担心 - 我很高兴能提供帮助。
猜你喜欢
  • 1970-01-01
  • 2012-05-21
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-30
  • 2022-08-14
  • 2018-08-21
相关资源
最近更新 更多