在lis中,填充字符串的长度应相同

2024-03-29 12:31:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个从文件中读取的字符串列表。每个元素都是一行文件。 我想要一个长度相同的字符串数组。我想找到最长的字符串,并将其他字符串重新格式化为与最长字符串一样长的字符串(在它们的末尾有空格)。 现在我找到了最长的那个。但我不知道如何重新格式化其他字符串。谁能帮帮我吗?在

with open('cars') as f:
    lines = f.readlines()
lines = [line.rstrip('\n') for line in open('cars')]
max_in=len(lines[0])
for l in lines:
    print (str(len(l))+" "+str(max_in))
    if max_in < len(l):
        max_in=len(l)
print max_in

Tags: 文件字符串in元素列表forlenline
3条回答

从这个开始:

In [546]: array = ['foo', 'bar', 'baz', 'foobar']

使用max查找最大字符串的长度:

^{pr2}$

现在,使用列表理解和pad left:

In [551]: [(' ' * (maxlen - len(x))) + x for x in array]
Out[551]: ['   foo', '   bar', '   baz', 'foobar']

假设已经从文件中读取了字符串列表,则可以使用^{}将字符串左移:

>>> lines = ['cat', 'dog', 'elephant', 'horse']
>>> maxlen = len(max(lines, key=len))
>>> 
>>> [line.rjust(maxlen) for line in lines]
['     cat', '     dog', 'elephant', '   horse']

也可以更改填充中使用的字符:

^{pr2}$

1)找到最大长度:

max_len = max(len(el) for el in lines)

2)在其他字符串的末端添加空格:

^{pr2}$

相关问题 更多 >