如何整齐地打印字典

时间:2016-02-03 23:04:54

标签: python-2.7 dictionary

我有一个包含不同长度的字符串键的dict。 我想在打印字典时获得以下结果:

'short-key'              value1
'short-key2              value2
...
'little-longer-key'      valueXX
...
'very-very-long-keeey'   valueXXXX

到目前为止,我一直在做这样的事情:

for key,value in dict.iteritems():
    print key," "*(80-len(key)),value

问题:

  1. 我不喜欢它。看起来并不像pythonic

  2. 80是随机选择的通常足够大的数字。但有时可能会发生关键时间长于此,因此" "*(80-len(key))无用

1 个答案:

答案 0 :(得分:1)

您必须迭代两次才能获得最长键的长度。列表推导可以使这更好。我个人的偏好是只迭代字典的键,然后进行查找:

from flask.ext.security import current_user

@app.route('/ajax')
def ajax():
    if current_user.is_authenticated:
        data = get_data()  # Get your data
        return json.dumps(data)
    else:
        return 'Not allowed'

这是一个更高级的版本,允许更多控制填充并使用字符串格式:

padded_width = max(len(x) for x in my_dict.iterkeys()) + 1
for key in my_dict:
    print(key.ljust(padded_width) + my_dict[key])

我想我个人更喜欢第一个例子的字符串连接。