dic = {'S00:D58': 1, 'M23:Q14': 1, 'S43:H52': 84,
'S43:H53': 2, 'S43:H50': 5, 'S43:H57': 1, 'M87:E11': 10}
我想把它打印成3个列的表格,如:
S00 D58 1
M23 Q14 1
S43 H52 84
S43 H53 2
S43 H50 5
S43 H57 1
M87 E11 10
有没有一种简单的方法可以达到这个目的?
答案 0 :(得分:2)
您可以使用ljust
来执行此操作:
for k,v in dic.items():
a,b = k.split(':')
print a.ljust(30), b.ljust(30), v
将打印出来:
S00 D58 1
M23 Q14 1
S43 H52 84
S43 H53 2
S43 H50 5
S43 H57 1
M87 E11 10
来自doc:
这些函数分别是左对齐,右对齐和中心a 给定宽度的字段中的字符串。它们返回一个字符串 最小宽度字符宽,通过用字符串填充字符串s来创建 字符fillchar(默认是一个空格),直到给定的宽度为止 右,左或两侧。字符串永远不会被截断。
请注意,您也可以使用format来获得相同的效果:
print '{:<30s}{:<30s}{}'.format(a, b, v)
答案 1 :(得分:1)
你也可以使用字符串格式化方法format
:
for k, v in dic.items():
a, b = k.split(':')
print '{:30s}{:30s}{}'.format(a, b, v)
答案 2 :(得分:0)
>>> dic = {'S00:D58': 1, 'M23:Q14': 1, 'S43:H52': 84,
'S43:H53': 2, 'S43:H50': 5, 'S43:H57': 1, 'M87:E11': 10}
>>>
>>> output = '\n'.join(['{:<10} {:<10} {:<10}'.format(*k.split(':'), dic[k]) for k in dic])
>>> print(output)
S43 H52 84
S43 H53 2
S00 D58 1
S43 H57 1
M87 E11 10
S43 H50 5
M23 Q14 1