【问题标题】:Printing multiple dictionaries horizontally水平打印多个字典
【发布时间】:2020-02-15 15:10:10
【问题描述】:

我有多个字典:

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

有什么想法吗?

【问题讨论】:

  • 改成list(y.keys())?

标签: python python-3.x dictionary


【解决方案1】:

y.keys() 不返回列表。使用list(y.keys())

【讨论】:

  • 啊,非常感谢。知道这是小事。
猜你喜欢
  • 2022-01-15
  • 2013-06-24
  • 1970-01-01
  • 2014-12-13
  • 2018-02-01
  • 1970-01-01
  • 2013-11-24
  • 1970-01-01
  • 2012-02-22
相关资源
最近更新 更多