如何从列表中的字符串中分隔整数?

时间:2017-02-26 13:52:51

标签: python python-2.7

我目前正在尝试制作二十一点游戏,并且我一直在努力计算手头的总数。

我的手牌将包括卡牌等级和卡牌适用于:

hand = ['C9','S4']

我知道如果那里没有字符串,你可以很容易地计算数字: 例如:

hand = ['9','4'] 

我可以很容易地做到:

hand = map(int,hand) 

然后

sum(hand)

但我怎么想用里面的字符串来做呢? 如果除了使用我的方式之外还有其他任何好方法来计算总数,请随时发布。

2 个答案:

答案 0 :(得分:3)

如果数值始终是排除第一个字符的字符串的一部分,那么您可以通过

实现
sum([int(s[1:]) for s in hand])

答案 1 :(得分:1)

而不是只做一个map,你可以做两个map,一个得到第二个项目(假设你想要求和的值是第二个项目):

from operator import itemgetter
l = ['C9','S4']
sum(map(int, map(itemgetter(1), l)))

但是,您可以使用collections.namedtuple(而不是使用普通tuple的轻量级类)来代替使​​用字符串:

from collections import namedtuple

Card = namedtuple('Card', ['suit', 'rank'])
l = [Card('C', 9), Card('S', 4)]
sum(i.rank for i in l)