首页 > 解决方案 > Python:如何将项目(?弹出)从一个列表移动到第二个列表,最初是空白列表

问题描述

首先,这是一个学习 Python 编码的自我改进练习,因此我可以进入某种程度的测试自动化。创建 GO FISH 游戏。我有一副新牌,我洗了牌。

洗牌后的 Freshdeck 为:['6D', '9S', 'AS', '2D', 'QH', 'JD', '7D', '6C', '7S', '4D', 'JS' 、'9D'、'8S'、'9C'、'AD'、'2C'、'8D'、'QC'、'KC'、'10D'、'QD'、'KD'、'JC'、' 7C'、'QS'、'KS'、'10S'、'KH'、'AC'、'3H'、'3D'、'10C'、'8H'、'5C'、'2H'、'4C' , '6H', '10H', '8C', 'JH', '2S', '4S', '3C', '6S', '4H', '5S', '9H', '5D', ' 7H'、'3S'、'AH'、'5H']

我想向每个玩家分发 7 张牌,所以我需要从所述列表中弹出最后一张牌并将其移动到每个玩家的新列表中。(阅读其他地方建议使用字典来保存玩家手牌列表)。这不是基本问题。无论如何尝试使用附加,我似乎都无法将最后一个值存储在新的(最初是第一次迭代时的空白列表)中。弹出一个值就可以了。我的洗牌后的牌组每次执行都会缩小尺寸,但我失去了空间的最后一个价值。

def create_hand(PN,shuffled_deck):
    print("Create Hand Function")
    print("Creating Hand of Cards for Player: ",PN)
    print("Length of Shuffled Pre-Shuffled Deck is: ",len(shuffled_deck))
    print("Pre-Shuffled Freshdeck is:",shuffled_deck)
    random.shuffle(shuffled_deck)
    print("Post-Shuffled Freshdeck is:",shuffled_deck)

    for i in range(1,7,1):
        print(f"The {i}th card number will be popped to Player Hand {PN}")
        temp=[]
        print("Printing Temp  ",temp)
        print(shuffled_deck)
        temp.append(print(shuffled_deck[-1]))
        shuffled_deck.pop(-1)

标签: pythonpython-3.x

解决方案


pop返回弹出的对象。

所以你需要做的就是temp.append(shuffled_deck.pop(-1))

这样,您将弹出对象并立即将其附加到 temp。

如果您还想打印它,您可以在弹出之前这样做:

print(shuffled_deck[-1])
temp.append(shuffled_deck.pop(-1))

推荐阅读