Python - 缩短冗余循环

Lae*_*ica 1 python for-loop if-statement

如何使用4个冗余if语句缩短此循环?

此代码用于计算纸牌游戏中玩家手中每套牌的牌数:

suitcounter = [0, 0, 0, 0]
if len(hand) > 0:
    for card in hand:
        if card[1] == "C":
            suitcounter[0] += 1
        if card[1] == "D":
            suitcounter[1] += 1
        if card[1] == "S":
            suitcounter[2] += 1
        if card[1] == "H":
            suitcounter[3] += 1
return suitcounter
Run Code Online (Sandbox Code Playgroud)

例:

手由两颗心和一个铁锹组成:

>>>hand = ['3H', '4H', 'AS']
[0, 0, 1, 2]
Run Code Online (Sandbox Code Playgroud)

3H= 3的心,4H= 4的心,AS=黑桃的王牌.

我觉得在我所做的事情中,代码"垃圾邮件"太多了.WTB提示.

Ima*_*ngo 5

你可以使用字典:

suitcounter = [0, 0, 0, 0]
suits = {'C': 0, 'D': 1, 'S': 2, 'H': 3}

for card in hand:
    suitcounter[suits[card[1]]] += 1
Run Code Online (Sandbox Code Playgroud)