簡體   English   中英

如何在2D陣列上使用pop?

[英]How to use pop on 2d arrays?

我正在嘗試制作一張30張牌的牌組,一次取出一張牌,然后用兩個牌子將它們分開,但我不知道為什么pop不能正常工作,為什么不是我的流行音樂

我曾嘗試使用.remove但我的老師說pop必須使用,我不知道為什么pop不工作

card_deck = [["yellow",1],["yellow",2],["yellow",3],["yellow",4],    ["yellow",5],["yellow",6],["yellow",7],["yellow",8],["yellow",9],     ["yellow",10],
["red",1],["red",2],["red",3],["red",4],["red",5],["red",6],["red",7],    ["red",8],["red",9],["red",10],
["black",1],["black",2],["black",3],["black",4],["black",5],["black",6],    ["black",7],["black",8],["black",9],["black",10]]

cardies = 30

while True:
  if cardies > 0:
    u1_card = random.choice(card_deck)
    u2_card = random.choice(card_deck)
    print ("player 1's card is", u1_card)
    print("player 2's card is", u2_card)
    card_deck.pop(u1_card)
    card_deck.pop(u2_card)
    len(card_deck) - 1
  if u1_card == u2_card:
    card_deck.pop

我希望卡片組( card_deck )隨機洗牌,然后一次一張卡片分配給每個玩家( u1_cardu2_card ),直到沒有卡片為止。

您想調用該函數,因此必須使用括號。 它應該是:

card = card_deck.pop() # for your last line of code

此外, pop()需要一個索引參數,因此card_deck.pop(u1_card)將不起作用。 您可以使用.index()來獲取索引

card_deck.pop(card_deck.index(u1_card))

另外我認為你的意思是用這一行更新cardieslen(card_deck) - 1

cardies -= 1 # you might have to change this to 2, to get the desired result because you are popping 2 cards per loop iteration

您還應該有一個條件來結束while循環,否則當列表為空時您將遇到錯誤,例如:

while len(card_deck) != 0:
    ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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