将字典的所有关键字提取为列表或np.array



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

所需输出(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]])

例如,仍然有效。关于速度,一方面,这将不得不执行数十万次,但另一方面,dict中的所有dict都相当小(大约有十几个密钥对)。因此,可读性比速度更重要,我想。两者兼而有之当然是

您可以使用嵌套列表理解:

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)]

最新更新