【发布时间】:2015-06-01 08:20:36
【问题描述】:
我已经完成了我的项目,我想打印我的结果。
我有一本这样的字典:
{('a',): 4, ('b',): 5, ('c', 'd'): 3, ('e', 'f'): 4, ('g', 'h'): 3, ('i',): 3}
某些键值对中的键是一个元素,而另一些键值对中的键是两个或三个。 我想以这种格式打印它,一行中有一个键的元素,新行中有两个键的元素等...
(elem,)
(elem1, elem2, ..., elem_n)
我试过这个:
itemdct //my dict
result = [itemdct]
csv_writer = csv.writer(sys.stdout, delimiter=';')
row = []
for itemdct in result:
for key in sorted(itemdct.keys()):
row.append("{0}:{1}".format(key, itemdct[key]))
csv_writer.writerow(row)
但我的输出是这样的。
('a',):3;('b',):4;('c', 'd'):3;('e', 'f'):3;......
mydict 是这样的
{('a',): 3, ('b', 'c'): 3, ....}
结果是这样的
[{('a',): 3, ('b', 'c'): 3,.....}]
提前谢谢你..
编辑:我希望我的输出是这样的:
('a',):3;('c',):4;('c',):5;('d',):6;('e',):3
('a', 'c'):3;('b', 'd'):3;('c', 'd'):4
【问题讨论】:
-
那么鉴于您的示例输入 - 究竟是什么所需的输出?
-
你能不能 edit 把它变成你的问题 - 所以它可能是格式化的 :)
-
你能解释一下换行符应该在哪里吗?每4行?究竟是什么问题?
-
换行符不固定,第一行应该有一个键
('a',)的所有元素,第二行应该有两个键('a','b')的元素 -
呃元组键不是字典的好格式,但您可能想要的是
sorted(d.items(), key=lambda k: len(k)),然后是一个 if 语句以在循环或平分中打印\n。
标签: python dictionary printing