簡體   English   中英

如何用python中的另一個列表替換列表?

[英]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


相關文件

我不確定你到底想要什么。 有兩種選擇:

  1. gamewords = newgamewords[:]
  2. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM