python在一个数组中选择随机成员,并在另一个相同的数组中删除它

python在一个数组中选择随机成员,并在另一个相同的数组中删除它,python,arrays,string,list,variables,Python,Arrays,String,List,Variables,我有两个数组,一个是主数组,另一个是temp,temp数组选择1个随机数,然后应该删除主数组中的该成员,因为两个数组的内容是相同的。怎么做?下面是代码 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'\

我有两个数组,一个是主数组,另一个是temp,temp数组选择1个随机数,然后应该删除主数组中的该成员,因为两个数组的内容是相同的。怎么做?下面是代码

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)

您的问题是,
random.sample
返回一个列表,您确实希望执行以下操作:

izvucena = random.sample(spil, 1)[0] # grab only element from list returned
虽然使用
random.choice
会更简单,但是:

izvucena = random.choice(spil)

问题在于
random.sample()
返回一个列表,而不是单个元素,在本例中
izvucena
是一个包含一个元素的列表。只需将倒数第二行替换为
spil.remove(izvucena[0])
即可删除元素本身。

除非您需要临时列表来执行其他操作,否则实际上不需要删除随机值,您可以执行以下操作:

spil.remove(random.choice(spil))

我是python编程新手,但我也得出结论,它返回列表,我不知道如何将其转换为字符串或其他什么,随机。choice返回字符串自动?不,
random。choice
返回列表中的实际元素,它不进行任何转换。如果您想使用
random.sample
.zeekay,您可以使用切片表示法从列表中抓取第一个元素,就像我上面的示例一样,您的random.choice建议工作正常:)非常感谢:)我需要临时变量来分配类中的对象属性,但感谢您的回答,我相信这也会对某人有所帮助:)