2012-11-07 41 views
3

对于长度小于最小值的任何名称,将该列表中的项目替换为包含名称的新字符串,并在右侧添加空格以实现最小长度。带空格的填充列表元素givin'最小长度

例如,如果列表包含名称“Sue”并且最小长度为5,那么该项目将被替换为填充2个空格的名称:“Sue”。任何已经是最小长度或更长的名称都不会改变。

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

现在我想接受答案*并将该空间量添加回列表中。

回答

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) 
+0

非常感谢!作品,并使很多感觉太糟糕我有两个问题去在这个问题集。我不会问在这里吗?生病可能会创建一个新帖子 – AlwaysNeedsHelp

+0

你应该为你有其他问题创建新的帖子,因为你可能需要拿出新的代码来展示你的具体问题和你已经尝试过的。 – Marius

+0

@AlwaysNeedsHelp:如果您认为这是解决方案,请将此答案标记为已解决。 –

1

高级字符串格式化可以让你assign specific width

>>> ['{:<5}'.format(x) for x in list_of_words] 
['Sue ', 'Alicia', 'Jen '] 
0

不知道,但:

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

OR:

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'] 
相关问题