目前,我有一个从文本文档中找到的列表,正在使用for循环进行搜索:
for sublist in mylist:
if sublist[2] == inp:
print (formatting(sublist))
从主列表(mylist)中查找所有内容,并创建所需值的子列表。然后,我想通过一个函数运行它,使其成为正确的格式。
功能:
def formatting(sublist):
new_lis = []
widths = [max(map(len, col)) for col in zip(*sublist)]
for row in sublist:
sub = (" ".join((val.ljust(width) for val, width in zip(row, widths))))
print(sub)
new_lis.append(sub)
return new_lis
从子列表到def的输入是:
['Bart Simpson', '12345', 'G400', '2']
运行该函数后看起来像这样:
['B', '1', 'G', '2']
它应该是这样的:
[Bart Simpson, 12345, G400, 2]
我不知道为什么会这样做。我只能想象这是从列表中每个实体的第一个获取值并附加它。而不是附加整个单词。
答案 0 :(得分:0)
如果子列表中的项目数量有限,则可以使用%格式,如下所示:
print('[%s, %22s, %5s, %3s]' % tuple(sublist))
's'之前的数字是以字符为单位的列宽,并且您要打印的字符串以空格填充到该宽度。
注意:您必须将列表转换为元组才能使其生效。