Python 一直在制作纸牌游戏

Python 一直在制作纸牌游戏,python,unicode,Python,Unicode,我已经创建了一个纸牌游戏,可以将一副牌从13张牌洗成4张牌,下面是代码: def shuffle_deck(): deck = [] for suit in ['H','C','D','S']: for denom in['A','2','3','3','4','5','6','7','8','9','10','J','Q','K']: deck += [denom + suit] random.shuffle(deck) return deck def deal_ha

我已经创建了一个纸牌游戏,可以将一副牌从13张牌洗成4张牌,下面是代码:

def shuffle_deck():
deck = []
for suit in ['H','C','D','S']:
    for denom in['A','2','3','3','4','5','6','7','8','9','10','J','Q','K']:
        deck += [denom + suit]
random.shuffle(deck)
return deck

def deal_hand(n,deck):
    hand = []
    for i in range(n):
        card = deck.pop()
        hand += [card]
    return hand

def deal_cards(n,cards,deck):
    player = []
    for i in range(n):
        player.append(deal_hand(cards,deck))
    return player

def deal_hands():
    deck = shuffle_deck()
    players = deal_cards(4, 13,deck)
    print(players)
但是我被直方图卡住了,我想在四个列表输出中查找心脏和黑桃。如下所示:

>>>print(hands) 
       [['8H','KC','KS','AC','QD','7H','7D','4D','9D','3H','KD','6H','9S'], 
        ['2C','7C','TC','2S','QC','6D','JC','5H','2H','8D','3D','7S','4H'], 
        ['8S','8C','JD','6S','3C','5C','AD','5D','2D','4C','QH','4S','AH'], 
        ['AS','9C','JS','QS','TH','JH','TS','3S','6C','5S','KH','9H','TD']] 

>>>card_histogram(hands)! 
        ❤❤❤❤          #four hearts in the first list   

        ❤❤❤            #three hearts in the second list 

        ❤❤             #two hearts in the third list

        ❤❤❤❤♠         #four heart and one spades in the fourth list

如何根据我编写的代码创建card_直方图函数

我不确定您提供的输出是否与您提供的输入相符,但是,您应该遍历每个子列表并计算每个套装的卡片数量,然后执行您应该执行的任何打印操作

def card_histogram(hands):
    for hand in hands:
        numHearts, numSpades, numClubs, numDiamonds = 0, 0, 0, 0
        for card in hand:
            if card[1] == 'H': numHearts += 1
            elif card[1] == 'S': numSpades += 1
            elif card[1] == 'C': numClubs += 1
            else: numDiamonds += 1
        for x in range(numHearts): print_heart()
        for x in range(numSpades): print_spade()
        # etc
请注意,
card[1]
对字符串进行子索引,并使用第1个(即第2个)字符,您知道这是表示套装的字符。打印是伪代码,因为我不知道您对打印的unicode输出的期望是什么,但是如果您试图打印这些unicode字符,您可能可以直接将它们键入文件,因为在Python 3中,默认的文件编码是utf8(如果我错了,请有人纠正我)