首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以表格形式和字母顺序打印字典?

如何以表格形式和字母顺序打印字典?
EN

Stack Overflow用户
提问于 2015-04-15 23:14:13
回答 3查看 10.7K关注 0票数 4

我有一本字典,希望以表格的形式打印,第一个标题为"code“,第二个标题为"name”,然后按字母顺序排序。

我目前有:

代码语言:javascript
复制
 import json
 q = my_dict() #which is the dictionary
 d = json.dumps(q)
 print(d)

输出:

代码语言:javascript
复制
"GEL": "Georgian Lari",
"BOB": "Bolivian Boliviano",
"ZAR": "South African Rand",

这是错误的方式,我不确定如何插入列标题。按字母顺序排序也会对我有很大帮助!

代码语言:javascript
复制
Name                   Code
"Bolivian Boliviano"   "BOB"
"Georgian Lari"        "GEL"
"South African Rand"   "Zar"

像这样的东西就是我要找的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-15 23:23:59

我不确定你是否需要引用,但你可以按你想要的顺序打印你的字典:

代码语言:javascript
复制
max_len = max([len(v) for v in d.values()])
padding = 4
for k,v in sorted(d.items(), key=lambda i:i[1]):
    print('{v:{v_len:d}s} {k:3s}'.format(v_len=max_len+padding,
                                           v=v, k=k))

输出:

代码语言:javascript
复制
Bolivian Boliviano     BOB
Georgian Lari          GEL
South African Rand     ZAR

sortedkey参数确保字典的条目按值排序。

编辑:根据要求,使字段长度与字典值长度匹配(加上一些填充)。

票数 7
EN

Stack Overflow用户

发布于 2015-04-15 23:28:38

如果可以选择第三方模块,则可以使用tabulate

从命令行运行以下命令:

代码语言:javascript
复制
$ pip install tabulate

然后在你的脚本中

代码语言:javascript
复制
from tabulate import tabulate

headers = ['Name', 'Code']
data = sorted([(v,k) for k,v in d.items()]) # flip the code and name and sort
print(tabulate(data, headers=headers))

这将为您提供输出

代码语言:javascript
复制
Name                Code
------------------  ------
Bolivian Boliviano  BOB
Georgian Lari       GEL
South African Rand  ZAR
票数 9
EN

Stack Overflow用户

发布于 2020-05-28 23:27:31

下面是我会怎么做:

代码语言:javascript
复制
import pandas as pd

pd.DataFrame(d)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29654047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档