如何在Python中将列表格式化为表
我有两个单独的列表,我想格式化为一个表如何在Python中将列表格式化为表,python,python-3.x,list,formatting,format,Python,Python 3.x,List,Formatting,Format,我有两个单独的列表,我想格式化为一个表 keys = ('banana', 'broccoli', 'beans', 'apple') values = (5, 1, 1, 1) 在上面的列表中,它统计有多少水果可用。例如,有5个香蕉和1个花椰菜。请注意,水果的名称有不同的长度。最好,我不需要导入任何模块。是否有一种方法可以格式化这些列表,使其看起来像: 'Banana' | 5 'Broccoli' | 1 'Beans' | 1 'Apple' | 1 我已尝试使用此代码
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))
谢谢你的帮助 您可以使用:
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))
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
您可以使用:
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
那段代码的输出是什么?它只是给了我一个名称错误,没有定义名称“items”,但我事先已经定义了它。你是说python对
NameError
撒谎吗?列表的名称是keys
(或values
)而不是items
。这些也是元组,不是列表。那代码的输出是什么?它只是给了我一个名称错误,没有定义名称“items”,但我事先已经定义了它。你是说python对名称错误
撒谎吗?列表的名称是键
(或值
)而不是项
。这些也是元组,不是列表。