簡體   English   中英

如何檢查列表中的多個元素是否等於一個變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM