[英]How do replace a list with another list in python?
我正在制作一個劊子手游戲,我希望能夠用用戶輸入的新單詞列表替換原始單詞列表。 目前我的代碼是這樣的:
gamewords[:] = newgamewords[:]
但這似乎不起作用......
原來的名單是這樣的:
gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
然后隨機選擇一個詞作為列表
word=gamewords[random.randint(0,len(gamewords)-1)]
我想更改它以便從新列表中選擇單詞,我該怎么做?
您可能打算這樣做:
gamewords = newgamewords[:] # i.e. copy newgamewords
另一種選擇是
gamewords = list(newgamewords)
我發現后者更具可讀性。
請注意,當您像這兩種方法一樣“復制”列表時,對新復制列表的更改不會影響原始列表。 如果您只是將newgamewords
分配給gamewords
(即gamewords = newgamewords
),那么對gamewords
更改將影響newgamewords
。
相關文件
我不確定你到底想要什么。 有兩種選擇:
gamewords = newgamewords[:]
gamewords = newgamewords
不同之處在於第一個選項復制newgamewords的元素並將其分配給gamewords 。 第二個選項只是將newgamewords的引用分配給gamewords 。 使用第二個版本,如果您更改了gamewords ,您將更改原始的newgamewords -list 。
因為你沒有提供更多的源代碼,我無法決定哪些適合你,你必須自己弄清楚。
用於從較大列表中隨機選擇一個或一組項目的函數的明顯選擇是random.choice()
或random.choices()
。
>>> gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']
>>> random.choice(gamewords)
'turquoise'
>>> random.choice(gamewords)
'orange'
>>> random.choice(gamewords)
'cyan'
>>> random.choices(gamewords, k=3)
['fuchsia', 'orange', 'red']
>>> random.choices(gamewords, k=2)
['turquoise', 'black']
>>>
不確定您是否能夠找到答案,但我遇到了類似的問題,我使用以下方法解決了它:
for x, y in zip(original_col, np.arange(0, len(original_col), 1)):
df['Term Ldesc'] = df['Term Ldesc'].replace(x, y)
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.