【发布时间】:2022-01-26 08:41:30
【问题描述】:
假设我有一组 54 张卡片。
我想进行 2 张卡片的初始分配。
然后,我想重新分配 3 张卡,但是这三张新卡必须与最初分配的 2 张卡不同。
等等……
在全球范围内,每次分发时,分发的卡片都会从 52 张卡片组中出来。每次发行时都会更新 52 张牌。
这是我的代码,但尽管进行了大量研究,但我对 Python 的了解还不够,无法找到解决方案。
import random
cards = ["2 coeur", "3 coeur", "4 coeur", "5 coeur", "6 coeur", "7 coeur", "8 coeur", "9 coeur", "10 coeur", "Valet coeur", "Dame coeur", "Roi coeur", "A1 coeur",
"2 trèfle", "3 trèfle", "4 trèfle", "5 trèfle", "6 trèfle", "7 trèfle", "8 trèfle", "9 trèfle", "10 trèfle", "Valet trèfle", "Dame trèfle", "Roi trèfle", "A1 trèfle",
"2 carreau", "3 carreau", "4 carreau", "5 carreau", "6 carreau", "7 carreau", "8 carreau", "9 carreau", "10 carreau", "Valet carreau", "Dame carreau", "Roi carreau", "A1 carreau",
"2 pique", "3 pique", "4 pique", "5 pique", "6 pique", "7 pique", "8 pique", "A9 pique", "10 pique", "Valet pique", "Dame pique", "Roi pique", "A1 pique"]
first_card = (random.choices(cartes, k = 1))
second_card = (random.choices(cartes, k = 1))
first_distri = first_card + second_card
print(first_distri)
second_distri = (random.choices(cartes, k = 3)) #AND ????
我想到了一个命令,例如“exept”:
second_distri = (random.choices(cartes, k = 3)) EXCEPT first_distri.
但我不确定它是否存在。
我用 if/else 尝试了不同的方法,但没有任何效果。
【问题讨论】:
-
您可以只使用
remove卡片,这样您就可以始终使用可以使用的卡片。另外,您可以使用choice(l)而不是choices(l, k=1) -
你也可以只
shuffle列表并按顺序迭代它
标签: python