【发布时间】:2021-04-09 05:01:15
【问题描述】:
我看到了类似的问题/答案,但没有找到合适的示例。我有一个(列表中的)字典列表,如下所示:
list_of_dictionaries = [
[{'key1': {'subkey1': 1.0},'key2': {'subkey2': 1.0},'key3': 'abc'},
{'key1': {'subkey1': 1.1},'key2': {'subkey2': 1.1},'key3': 'def'},
{'key1': {'subkey1': 1.2},'key2': {'subkey2': 1.2},'key3': 'ghi'},
{'key5': 5.0, 'key6': 6.0}],
[{'key1': {'subkey1': 2.0},'key2': {'subkey2': 2.0},'key3': 'abc'},
{'key1': {'subkey1': 2.1},'key2': {'subkey2': 2.1},'key3': 'def'},
{'key1': {'subkey1': 2.2},'key2': {'subkey2': 2.2},'key3': 'ghi'},
{'key5': 7.0, 'key6': 8.0}]
]
具有挑战性的部分是我希望前 3 个字典中的每一个都有一个输出,这些字典与每个列表的第 4 个元素配对:
#desired output
List1 - Subkey1 value: 1.0 /// Subkey2 value: 1.0 /// Key3 value: abc /// Key5 value: 5.0 /// Key6 value: 6.0
List1 - Subkey1 value: 1.1 /// Subkey2 value: 1.1 /// Key3 value: def /// Key5 value: 5.0 /// Key6 value: 6.0
List1 - Subkey1 value: 1.2 /// Subkey2 value: 1.2 /// Key3 value: ghi /// Key5 value: 5.0 /// Key6 value: 6.0
List2 - Subkey1 value: 2.0 /// Subkey2 value: 2.0 /// Key3 value: abc /// Key5 value: 7.0 /// Key6 value: 8.0
List2 - Subkey1 value: 2.1 /// Subkey2 value: 2.1 /// Key3 value: def /// Key5 value: 7.0 /// Key6 value: 8.0
List2 - Subkey1 value: 2.2 /// Subkey2 value: 2.2 /// Key3 value: ghi /// Key5 value: 7.0 /// Key6 value: 8.0
尝试了以下很接近的方法,但我对如何仅将 key5 和 key6 值加入每个相应的打印语句感到困惑:
for list_of_metrics in list_of_dictionaries:
for dictionary in list_of_metrics:
if 'key1' in dictionary:
subkey1 = dictionary['key1']['subkey1']
print('Key1, Subkey1 value: ' + str(subkey1))
if 'key5' in dictionary:
key5 = dictionary['key5']
key6 = dictionary['key6']
print('Key5 value: ' + str(key5) + ', Key6 value: ' + str(key6))
#output
Key1, Subkey1 value: 1.0
Key1, Subkey1 value: 1.1
Key1, Subkey1 value: 1.2
Key5 value: 5.0, Key6 value: 6.0
Key1, Subkey1 value: 2.0
Key1, Subkey1 value: 2.1
Key1, Subkey1 value: 2.2
Key5 value: 7.0, Key6 value: 8.0
【问题讨论】:
标签: python python-3.x list dictionary