3

長さが最小値より短い名前の場合は、リストのその項目を、右側にスペースが追加された名前を含む新しい文字列に置き換えて、最小長さを実現します。

たとえば、リストに「Sue」という名前が含まれていて、最小の長さが5の場合、そのアイテムは2つのスペースが埋め込まれた名前「Sue」に置き換えられます。すでに最小長以上の名前は変更されません。

for words in list_of_names:  
    if len(words) < min_length:  
        answer = min_length - len(words)    

今、私は答え*を取り、その量のスペースをリストに戻したいと思います。

4

3 に答える 3

3

高度な文字列フォーマットでは、特定の幅を割り当てることができます:

>>> ['{:<5}'.format(x) for x in list_of_words]
['Sue  ', 'Alicia', 'Jen  ']
于 2012-11-07T05:30:16.610 に答える
0

これを行うために使用できますstr.ljust()

list_of_words = ['Sue', 'Alicia', 'Jen']

new_list = []
for word in list_of_words:
    if len(word) < 5:
        new_list.append(word.ljust(5))
    else:
        new_list.append(word)

print(new_list)
于 2012-11-07T05:21:19.453 に答える
0

確かではありませんが:

if len(word) < minSize:
    word += ' ' * (minSize - len(word))

また:

correct_size = lambda word, size: word if len(word) >= size else word + ' ' * (size - len(word))
correct_size('test', 6)
>>> 'test  '

意味:

size = 6
lVals = ['test', 'where', 'all', 'simple', 'cases', 'tested']
lVals = [correct_size(word, size) for word in lVals]
print lVals
>>> ['test  ', 'where ', 'all   ', 'simple', 'cases ', 'tested']
于 2012-11-07T06:06:02.480 に答える