我有多个词典:
dict1 = {"Hello": [1, 2, 3], "World": [1,2]}
dict2 = {"Hello": [1], "World":[2]}
dict3 = {"Test": [1]}
我试图根据每个字典的键和值水平打印这些字典。它将打印标题(Word,Dict1,Dict2,Dict3等),然后在正确的位置水平打印每个词典中的后续单词和值。
示例输出:
Word, Dict1, Dict2, Dict3
Hello, 1:2:3, 1,
World, 1:2, 2,
Test, , , 1
目前,我正在使用(以后可以修复格式,现在只专注于在正确的位置打印正确的值)
my_dicts = [dict1, dict2, dict3]
header = "Word, " + "dict1"+", dict2"+", dict3"
all_possible_keys = set(reduce(lambda x,y: x + y.keys(), my_dicts, []))
print(header)
for k in all_possible_keys:
print_str = "{},".format(k)
for d in my_dicts:
print_str += "{},".format(d.get(k, None))
print_str += "\n"
print(print_str)
我目前在all_possible_keys分配中遇到以下错误:
TypeError: can only concatenate list (not "dict_keys") to list
有什么想法吗?
答案 0 :(得分:1)
y.keys()
不返回列表。使用list(y.keys())
。