生成随机列表中的空格

问题描述:

我想从一个更大的名称列表中创建一个随机列表。问题是,生成的名称之间没有空格。我无法理解如何放置空间。这里是我的代码生成随机列表中的空格

import random 

final_list = "" 

a=0 

sss = ("John","Adam","Sara","Lory","Dick","Popeye") 

while a<7: 

    x = random.choice(sss) 

    final_list += x 

    a += 1 

print (final_list) 

的结果是这样的: SaraAdamDickPopeyeSaraPopeyeLory

如何我的名字之间添加空间?此外,任何人都可以建议一个更短的方式来做这个代码?

+0

欢迎来到SO。请花时间阅读[问]。 [在Python中连接字符串的首选方式是?](https://stackoverflow.com/questions/12169839/which-is-the-preferred-way-to-concatenate-a-string-in-python)有帮助。请修复缩进。 – wwii

您可以在原始级联添加一个额外的空空字符串:

x = random.choice(sss) 
final_list += " "+x if final_list else x 
a += 1 

或者,更准确地说,在列表理解使用' '.join

sss = ("John","Adam","Sara","Lory","Dick","Popeye") 
final_string = ' '.join(random.choice(sss) for i in range(7)) 
+0

这将不会表现完全正确,因为在名字之前还会附加空格 –

+0

@ShubhamSingla请参阅我最近的编辑。 – Ajax1234

为了避免开头或结尾的空格,检查如果长度为final_list已经大于零。

import random 

final_list = "" 
a=0 
sss = ("John","Adam","Sara","Lory","Dick","Popeye") 
while a<7: 
    x = random.choice(sss) 
    final_list = final_list + " " + x if len(final_list) > 0 else x 
    a += 1 
print (final_list) 

如果你不想明确检查,你可以利用strip功能来删除前导和你构建final_list后尾随空格。