我有一个包含不同长度的字符串键的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
问题:
我不喜欢它。看起来并不像pythonic
80是随机选择的通常足够大的数字。但有时可能会发生关键时间长于此,因此" "*(80-len(key))
无用
答案 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])
我想我个人更喜欢第一个例子的字符串连接。