Python 列表中的随机选择
我想从列表中随机选择一些东西,但是,如何使它在调用时不能再次选择 这是一个纸牌游戏,我想选择一个价值的西装显示在左上角和右下角,但只有一个价值的每一张卡的西装应该被选择Python 列表中的随机选择,python,python-3.x,Python,Python 3.x,我想从列表中随机选择一些东西,但是,如何使它在调用时不能再次选择 这是一个纸牌游戏,我想选择一个价值的西装显示在左上角和右下角,但只有一个价值的每一张卡的西装应该被选择 card_value = ['A', 'K', 'Q', 'J','10', '9', '8', '7', '6', '5', '4', '3', '2', '1'] card_value = choice(card_value) 我想选择一个西服值显示在左上角和右下角,但每张西服卡只能选择一个值您可以使用内置的pythonr
card_value = ['A', 'K', 'Q', 'J','10', '9', '8', '7', '6', '5', '4', '3', '2', '1']
card_value = choice(card_value)
我想选择一个西服值显示在左上角和右下角,但每张西服卡只能选择一个值您可以使用内置的python
random
库来执行此操作。您应该在中阅读更多关于选项的信息,您可以在其中给出选择选项的概率和更多功能
card_value = ['A', 'K', 'Q', 'J','10', '9', '8', '7', '6', '5', '4', '3', '2', '1']
card_value = choice(card_value)
import random
card_value = ['A', 'K', 'Q', 'J','10', '9', '8', '7', '6', '5', '4', '3', '2', '1']
print(random.choice(card_value))
目前,您的代码无法执行任何操作,因为您正在重新分配值
card\u值
但是,您可以使用来自random的两种方法执行所需的输出
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
获取一个随机元素,然后您只需重新激活它您可以编写一个函数,从卡值
中采样一个值,并将其删除:
def pick_a_card(deck):
import numpy as np
# index of the card to pick
i = np.random.randint(low = 0, high = len(deck)-1)
# value of the card picked
pick = deck[i]
# remove only that card from the deck
del deck[i]
# the returns the card picked and the deck without it
return pick, deck
然后,您可以拨打:
choice, card_value = pick_a_card(card_value)
如果这不适合您的问题,请告诉我。而不是使用
选择
函数,您可以获得一个随机整数作为索引,并在列表中使用pop()
:
随机导入
卡片价值=['A'、'K'、'Q'、'J'、'10'、'9'、'8'、'7',
'6', '5', '4', '3', '2', '1']
random\u card=card\u value.pop(random.randint(0,len(card\u value)-1))
但是请注意,如果列表为空,这将抛出一个
ValueError
,我将创建一个包含所有卡片等的列表。“kh”=红心之王等等。然后这样做,并将拾取的卡移动到另一个阵列,以便它们不能从牌组中拾取
import random
def random_card():
# Clubs = c, Spades = s, Hearts = h, Diamonds = d
deck = ['kc', 'ks', 'kh', 'kd', 'qc']
picked_cards = []
selected_card = random.choice(deck)
print('selected card ' + selected_card)
picked_cards.append(selected_card)
deck.pop(deck.index(selected_card))
我不确定添加严重依赖性是否是最佳解决方案:)