我遇到了问题:
我有一个由不同长度的元素组成的列表:
det_slopes_JKH = ['Superpipe Bolgen','JatzPark','Avalanch Training Center','Bräma schwer']
并且我想在较短的单词中添加空格' '
,目的是让列表中的所有元素具有相同的长度。
det_slopes_JKH2 = []
for element in det_slopes_JKH:
if len(element) < len(element[2]:
det_slopes_JKH2.append(element + ' ')
谢谢
答案 0 :(得分:3)
你的目标不是很明确,但我假设你想拥有相同长度的所有琴弦。
这会为每个字符串添加一个空格,直到所有字符串都具有相同的长度(最长字符串的长度):
def equalize_lengths(l):
length = len(max(l, key=len))
return [e.ljust(length) for e in l]
答案 1 :(得分:1)
你需要两件事:
max = len(max(det_slopes_JKH, key=len))
ljust()
作为i.ljust(max)
来完成。 ljust
不断向字符串右侧添加空格,直到字符串长度=最大值。 这可以使用列表理解来完成:
>>> det_slopes_JKH = ['Superpipe Bolgen','JatzPark','Avalanch Training Center','Bräma schwer']
>>> [i.ljust(len(max(det_slopes_JKH, key=len))) for i in det_slopes_JKH]
['Superpipe Bolgen ', 'JatzPark ', 'Avalanch Training Center', 'Bräma schwer ']
答案 2 :(得分:0)
这应该可以解决问题:
det_slopes_JKH = ['Superpipe Bolgen','JatzPark','Avalanch Training Center','Bräma schwer']
max_length = max(len(elem) for elem in det_slopes_JKH)
det_slopes_JKH2 = [elem + ' '*(max_length - len(elem)) for elem in det_slopes_JKH]
print(det_slopes_JKH2)
结果是:
['Superpipe Bolgen ', 'JatzPark ', 'Avalanch Training Center', 'Bräma schwer ']
答案 3 :(得分:0)
将内置max
与key=len
一起使用,它会为您提供最大长度字符串,然后使用len
获取长度,然后使用string formatting
。
>>> max(det_slopes_JKH, key=len)
'Avalanch Training Center'
>>> len(max(det_slopes_JKH, key=len)
24
>>> ['{:24}'.format(elem) for elem in det_slopes_JKH]
['Superpipe Bolgen ', 'JatzPark ', 'Avalanch Training Center', 'Br\xc3\xa4ma schwer ']
>>>
答案 4 :(得分:0)
[x.ljust(len(max(det_slopes_JKH,key=len))) for x in det_slopes_JKH ]
你可以尝试这一个班轮。
答案 5 :(得分:0)
我没有在其他答案中看到字符串格式化,我碰巧喜欢格式化,说我无法抗拒显示我的0.02答案
maxlen = max(len(elt) for elt in places)
fmt = "%-"+str(maxlen)+"s"
places = [fmt%elt for elt in places]