首页 > 解决方案 > 列表中的随机选择

问题描述

我想从列表中随机选择一些东西,但是,我怎么做才能让它在被调用时无法再次选择?

这对于纸牌游戏,我想选择一个花色值显示在左上角和右下角,但该花色的每张牌只能选择一个值

card_value = ['A', 'K', 'Q', 'J','10', '9', '8', '7', '6', '5', '4', '3', '2', '1']
card_value = choice(card_value)

我想选择一个花色值显示在左上角和右下角,但该花色的每张牌只能选择一个值

标签: pythonpython-3.x

解决方案


目前,您的代码在重新分配值时无法执行任何操作card_value

但是,您可以使用随机的两种方法执行所需的输出

from random import choice, shuffle

choices = ['A', 'K', 'Q', 'J','10', '9', '8', '7', '6', '5', '4', '3', '2', '1']

shuffle(choices)

def pick_a_card(l):
    return l.pop()

card_value = pick_a_card(choices)
print(card_value)
card_value = pick_a_card(choices)
print(card_value)
print(choices)


# Or use choice and remove

def pick_a_card(l):
    card = choice(l)
    l.remove(card)
    return card

choices = ['A', 'K', 'Q', 'J','10', '9', '8', '7', '6', '5', '4', '3', '2', '1']


card_value = pick_a_card(choices)
print(card_value)
card_value = pick_a_card(choices)
print(card_value)
print(choices)

shuffle打乱列表,你只需要执行pop

choice需要一个随机元素,然后你只需要重新处理它


推荐阅读