python-从一个数组中随机选择一个成员并在另一个相同数组中移除它
我有两个数组,一个是主数组,另一个是临时数组。临时数组会随机选择一个数字,然后这个数字应该从主数组中删除,因为这两个数组的内容是一样的。请问该怎么做呢?下面是代码。
import random
spil=['1t','2t','3t','4t','5t','6t','7t','8t','9t','10t','12t','13t','14t'\
,'1k','2k','3k','4k','5k','6k','7k','8k','9k','10k','12k','13k','14k'\
,'1e','2e','3e','4e','5e','6e','7e','8e','9e','10e','12e','13e','14e'\
'1p','2p','3p','4p','5p','6p','7p','8p','9p','10p','12p','13p','14p']
print(spil)
izvucena = random.sample(['1t','2t','3t','4t','5t','6t','7t','8t','9t','10t','12t','13t','14t'\
,'1k','2k','3k','4k','5k','6k','7k','8k','9k','10k','12k','13k','14k'\
,'1e','2e','3e','4e','5e','6e','7e','8e','9e','10e','12e','13e','14e'\
'1p','2p','3p','4p','5p','6p','7p','8p','9p','10p','12p','13p','14p'],1)
spil.remove(izvucena)
print(spil)
3 个回答
1
除非你需要这个临时列表来做其他事情,否则其实没必要去移除一个随机值。你可以直接这样做:
spil.remove(random.choice(spil))
2
问题在于,random.sample()
返回的是一个列表,而不是单个元素。在这个情况下,izvucena
是一个只包含一个元素的列表。只需要把倒数第二行替换成 spil.remove(izvucena[0])
,这样就可以直接移除那个元素了。
4
你的问题是,random.sample
返回的是一个列表,而你其实想要做的事情是这样的:
izvucena = random.sample(spil, 1)[0] # grab only element from list returned
不过,使用 random.choice
会更简单一些:
izvucena = random.choice(spil)