![](/img/trans.png)
[英]How do I use two for loops to check if line in list is equal to variable
[英]How do I check if multiple elements of a list are equal to a variable?
我正在尝试制作一个经过改组的扑克牌,为此,我必须检查所生成的纸牌是否等于先前的纸牌。 到目前为止,我已经尝试过了:
for i in range(51):
a=card()
while(deck[:i]==a):
a=card()
deck[i]=a
卡是生成随机卡的函数,我认为问题出在[:i] PS中。列表已经有52个元素,它们都被设置为“空”
要回答您的问题,您可以执行以下操作:
for i in range(51):
a = card()
while a in deck:
a = card()
deck[i] = a
您可以使用a in deck
来测试成员资格a in deck
因为您说卡座被初始化为空,因此您不必检查第i个元素,因为我之后的元素肯定不会包含a。
但是,还有一种更好的方法来创建random.shuffle
组合的纸牌:使用random.shuffle
所说的random.shuffle。
>>> import random
>>> l = [1, 2, 3, 4, 5]
>>> random.shuffle(l)
>>> l
[3, 5, 4, 2, 1]
制作一个列表,按顺序代表所有52张卡,制作自己的类或只是整数,然后使用random
库将它们洗牌。
您还可以执行以下操作:
import random
cards = [ i for i in range(52)]
curentPosition = [ i for i in range(52)]
nextPosition = [ i for i in range(52)]
print('Positions before shufle:\n',curentPosition)
for i in cards:
randomPos = random.choice(nextPosition)
curentPosition[i] = randomPos
nextPosition.remove(randomPos)
print('Positions after shufle\n',curentPosition)
正如其他答案所解释的那样,使用random.shuffle
绝对是解决问题的最佳方法,但可以回答您的原始问题:
要检查列表中的多个元素是否等于一个变量,可以variable in list
语法中使用该variable in list
:
my_list = [51,47,2,29,6]
if 51 in my_list:
print("51 is already selected")
else:
print("51 isn't in my_list")
要将其应用于现有代码:
for i in range(51):
a=card()
while(a in deck):
a=card()
deck[i]=a
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.