【发布时间】:2016-03-04 09:45:06
【问题描述】:
removed_card = random.sample(deck, 5)
这允许我访问列表中的值,但它会将它们留在列表中。如何使我可以一次从列表中删除多个项目?
【问题讨论】:
removed_card = random.sample(deck, 5)
这允许我访问列表中的值,但它会将它们留在列表中。如何使我可以一次从列表中删除多个项目?
【问题讨论】:
您必须使用remove() 函数并将其从列表中删除,如下所示:
import random
cards = random.sample(deck, 5)
cards.remove(deck)
我不确定它是否有效,因为我不知道“甲板”是什么。
【讨论】:
cards.remove(deck) 不起作用。试图从您从random.sample 获得的样本中删除原始列表。
这可能不是最好的方法,但您可以在列表中选择 5 个索引并弹出这些索引:
removed_cards = []
for _ in range(5):
removed_cards.append(deck.pop(randint(len(deck))))
list.pop(i) 删除索引 i 处的项目。您不能以这种方式进行列表理解,因为 deck.pop 将更改 deck 的长度,这会导致索引错误。
【讨论】: