如何使用 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
示例:
手牌由两颗红桃和一张黑桃组成:
>>>hand = ['3H', '4H', 'AS']
[0, 0, 1, 2]
3H = 红心 3,4H = 红心 4,AS = 黑桃 A。
我觉得我所做的代码“垃圾邮件”太多了。 WTB 提示。
请您参考如下方法:
你可以使用字典:
suitcounter = [0, 0, 0, 0]
suits = {'C': 0, 'D': 1, 'S': 2, 'H': 3}
for card in hand:
suitcounter[suits[card[1]]] += 1
