输入:所有键都是整数的字典字典。嵌套字典中的值是不相关的。
所需输出:(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)]