![](/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.