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