【问题标题】:How to remove multiple items from a list, not just access them [duplicate]如何从列表中删除多个项目,而不仅仅是访问它们[重复]
【发布时间】:2016-03-04 09:45:06
【问题描述】:
removed_card = random.sample(deck, 5)

这允许我访问列表中的值,但它会将它们留在列表中。如何使我可以一次从列表中删除多个项目?

【问题讨论】:

    标签: python list


    【解决方案1】:

    您必须使用remove() 函数并将其从列表中删除,如下所示:

    import random
    
    cards = random.sample(deck, 5)
    cards.remove(deck)
    

    我不确定它是否有效,因为我不知道“甲板”是什么。

    【讨论】:

    • cards.remove(deck) 不起作用。试图从您从random.sample 获得的样本中删除原始列表。
    【解决方案2】:

    这可能不是最好的方法,但您可以在列表中选择 5 个索引并弹出这些索引:

    removed_cards = []
        for _ in range(5):
            removed_cards.append(deck.pop(randint(len(deck))))
    

    list.pop(i) 删除索引 i 处的项目。您不能以这种方式进行列表理解,因为 deck.pop 将更改 deck 的长度,这会导致索引错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 2016-06-04
      • 2019-01-05
      • 2013-03-05
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      相关资源
      最近更新 更多