我在分配一個變量給特定的元素字符串時遇到了一些麻煩。下面是我的代碼的簡化版本:如何將變量分配給列表中的元素的字符串而不是單獨的元素?
import random
import string
def printsl(string):
import sys
sys.stdout.write(string)
sys.stdout.flush()
l = random.sample(string.ascii_lowercase, 26)
w = random.sample(l, random.randint(4, 10))
for elem in w:
x = elem #<-------
printsl(x)
print('')
printsl(x)
當我運行這段代碼的輸出是沿
npabjcevz
z
或
znoyhe
e
等
東西線第一行輸出是我想要的,但是由於某種原因,第二行只輸出了最後一個字母字符串。糾正我,如果我錯了,但我猜這是因爲,而不是elem
相當於整個隨機元素的字符串,它被重新分配到4-10不同的元素,並打印所有printsl(x)
for elem in w
但它第二次只是使用最近的一封信。
我怎樣才能讓它打印完整的字符串?或者更具體地說,我如何讓x
等於整個輸出字符串?
我唯一能想到的嘗試是將x = elem
更改爲x = str(elem)
,但它給出了相同的結果。
你會看到通過使用'打印你做了什麼更好的(再版( W))'。 –
@MartijnPieters當我使用print(repr(w))時,它顯示了我不想要的所有逗號和括號(列表形式)? – zeurosis
我沒有說這會產生你想要的,我說你會更好地看到你做了什麼。 :-)這表明'w'是單個字符的*列表*。 –