Skip to main content
 首页 » 编程设计

Python之缩短冗余循环

2025年05月04日12lonelyxmas

如何使用 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