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提示.
你可以使用字典:
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)
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |