2015-12-03 86 views
2

我正在使用Python創建一個紙牌遊戲。我代表我的牌爲5D,10H,等等。到目前爲止,我已經使用了.pop()的方式將牌從一張牌[列表]中拿到牌手手中[名單]。這工作很好,直到我創建了另一個列表作爲丟棄堆。當玩家丟棄一張牌時,我將其放入放棄列表中,但將角色拆分爲單獨的元素。在整個計劃中沒有其他的清單已經完成。會發生什麼在列表之間交換元素

例子:

discard = [] 
hand = ['12D', '5C', '3D'] 
discard += hand.pop(0) 
discard = ['1', '2', 'D'] 

我如何避免這種情況?

+0

您可能會注意到**丟棄**是這些有用的序列方法之一。因此,請考慮爲您的個人清單獲取唯一名稱,例如** discard_stack **。 – Prune

+0

是的,這個例子不是我實際使用的,只是爲了展示這個問題。不管怎麼說,還是要謝謝你!非常感激。 – Frazer224

回答

3

+=將序列添加到列表中,並且是list.extend()的別名。你想添加一個單獨的元素到列表中,所以+=不是你正確的操作。

試試這個:

discard.append(hand.pop(0)) 

Python文檔具有a convenient table解釋所有在列表和其它可變的序列類型的操作。

+0

完美!非常感謝你!作品一種享受。 – Frazer224