【发布时间】:2015-05-23 10:37:38
【问题描述】:
如何用 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 提示。
【问题讨论】:
-
提示:你不需要检查手的长度是否大于零,因为零是假的,所以
if len(hand):做同样的事情。 -
@CarlSmith 除非您可以完全跳过该检查,因为无论如何循环将终止而无需迭代空
hand。 -
好点。我想得更笼统,但是,是的,
+1。
标签: python if-statement for-loop