我有两个单独的列表,希望将它们格式化为表格。
keys = ('banana', 'broccoli', 'beans', 'apple')
values = (5, 1, 1, 1)
在上面的列表中,它计算可用的水果数量。例如,有5根香蕉和1个西兰花。请注意,水果的名称具有不同的长度。最好是,我不想导入任何模块。有没有一种方法可以格式化这些列表,使其看起来像这样:
'Banana' | 5
'Broccoli' | 1
'Beans' | 1
'Apple' | 1
我已经尝试使用此代码:
row_format ="{:>15}" * (len(items) + 1)
print(row_format.format("", *items))
for keys, values in zip(items, keys):
print(row_format.format(values, *row))
感谢您的帮助!
答案 0 :(得分:2)
keys = ('banana', 'broccoli', 'beans', 'apple')
values = (5, 1, 1, 1)
max_length = len(max(keys, key=len))
for k, v in zip(keys, values):
print("{: <{width}} | {}".format(repr(k).title(), v, width=max_length + 2))
打印:
'Banana' | 5
'Broccoli' | 1
'Beans' | 1
'Apple' | 1
答案 1 :(得分:0)
您可以使用:
width = max(len(w) for w in keys)
print(''.join(f'{k:{width}} | {v}\n' for k, v in zip(keys, values)))
# output:
# banana | 5
# broccoli | 1
# beans | 1
# apple | 1