Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中将列表字典格式化为表?_Python_Dictionary - Fatal编程技术网

如何在Python中将列表字典格式化为表?

如何在Python中将列表字典格式化为表?,python,dictionary,Python,Dictionary,我想将其打印为包含3列的表格,如: dic = {'S00:D58': 1, 'M23:Q14': 1, 'S43:H52': 84, 'S43:H53': 2, 'S43:H50': 5, 'S43:H57': 1, 'M87:E11': 10} 有没有一种简单的方法可以实现这一点?您可以使用ljust来实现这一点: S00 D58 1 M23 Q14 1 S43 H52

我想将其打印为包含3列的表格,如:

dic = {'S00:D58': 1, 'M23:Q14': 1, 'S43:H52': 84, 
       'S43:H53': 2, 'S43:H50': 5, 'S43:H57': 1, 'M87:E11': 10}

有没有一种简单的方法可以实现这一点?

您可以使用
ljust
来实现这一点:

S00         D58          1    
M23         Q14          1   
S43         H52          84   
S43         H53          2   
S43         H50          5   
S43         H57          1   
M87         E11          10 
将打印以下内容:

for k,v in dic.items():
    a,b = k.split(':')
    print a.ljust(30), b.ljust(30), v
从:

这些函数分别为左对齐、右对齐和居中对齐 指定宽度字段中的字符串。它们返回一个字符串,该字符串位于 最小宽度字符宽度,通过在字符串s中填充 字符fillchar(默认为空格)直到 右、左或两侧。字符串永远不会被截断

请注意,您也可以使用来获得相同的效果:

S00                            D58                            1
M23                            Q14                            1
S43                            H52                            84
S43                            H53                            2
S43                            H50                            5
S43                            H57                            1
M87                            E11                            10

print'{:您还可以使用字符串格式化方法:

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(['{:我有一个简单的问题!你知道如何用制表符分隔符排序吗?如果你想排序,你可以使用
collections.orderedict(sorted(dic.items())
按键排序。
print '{:<30s}{:<30s}{}'.format(a, b, v)
for k, v in dic.items():
    a, b = k.split(':')
    print '{:30s}{:30s}{}'.format(a, b, v)
>>> 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