当前位置:  开发笔记 > 编程语言 > 正文

如何将此代码转换为列表理解

如何解决《如何将此代码转换为列表理解》经验,为你挑选了1个好方法。

简单的问题,我正在尝试熟练使用LC并为项目编写"二十一点".以下是代码示例:

# define globals for cards
SUITS = ['C', 'S', 'H', 'D']
RANKS = ['A', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K']
VALUES = {'A':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9, 'T':10, 'J':10, 'Q':10, 'K':10}

hand = ['C4','HK'] #4 of spades and the king of hearts should total 14

total = 0
for card in hand:
    if card[-1] in VALUES:
        total += VALUES[card[-1]]
print total

total = 0
print [total+VALUES[card[-1]] for card in hand if card[-1] in VALUES]

你可以看到working for循环(返回14)和我对LC实现的尝试.它返回一个列表[4,10]

如何让它返回该列表中元素的总和?



1> Eugene Prima..:
print sum(VALUES[card[-1]] for card in hand if card[-1] in VALUES)


您不需要在列表中缓冲理解; `sum(VALUES [card [-1]] for ...)`就足够了.
推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有