如何用python中的另一个列表替换列表?

时间:2013-01-05 18:21:43

标签: python list

我正在制作一个刽子手游戏,我希望能够用一个用户输入的新单词列表替换原始单词列表。我的代码就是这样:

gamewords[:] = newgamewords[:]

但这似乎不起作用......

原始列表如下:

gamewords= ['blue','violet','red','orange','fuchsia','cyan','magenta','azure','black','turquoise','pink','scarlet']

然后随机选择一个单词

 word=gamewords[random.randint(0,len(gamewords)-1)]

我想更改它以便从新列表中选择该单词,我该怎么做?

4 个答案:

答案 0 :(得分:3)

您可能打算这样做:

gamewords = newgamewords[:]  # i.e. copy newgamewords

另一种选择是

gamewords = list(newgamewords)

我发现后者更具可读性。


请注意,当您“复制”这两种方法的列表时,对新复制列表的更改不会影响原始列表。如果您只是将newgamewords分配给gamewords(即gamewords = newgamewords),则对gamewords 的更改将生效newgamewords


相关文档

答案 1 :(得分:1)

我不确定你到底想要什么。有两种选择:

  1. gamewords = newgamewords[:]
  2. gamewords = newgamewords
  3. 区别在于第一个选项复制 newgamewords 的元素,并将其分配给游戏词。第二个选项只是将 newgamewords 引用分配给游戏词。如果您更改了游戏字,则可以使用第二个版本更改原始 newgamewords -list。

    因为您没有提供更多的源代码,所以我无法确定哪种方法适合您,您必须自己解决。

答案 2 :(得分:1)

用于从一个较大的列表中随机选择一个或一组项目的明显选择是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']
>>> 

答案 3 :(得分:0)

不知道您是否能够找到答案,但是我遇到了类似的问题,并使用此方法解决了该问题:

for x, y in zip(original_col, np.arange(0, len(original_col), 1)):
    df['Term Ldesc'] = df['Term Ldesc'].replace(x, y)

希望这会有所帮助!