2017-10-21 110 views
0

我想從一個更大的名稱列表中創建一個隨機列表。問題是,生成的名稱之間沒有空格。我無法理解如何放置空間。這裏是我的代碼生成隨機列表中的空格

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

回答

0

您可以在原始級聯添加一個額外的空空字符串:

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

0

爲了避免開頭或結尾的空格,檢查如果長度爲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後尾隨空格。