Python 将作为列表中元素的字符串值添加到一起

Python 将作为列表中元素的字符串值添加到一起,python,string,list,element,add,Python,String,List,Element,Add,我将如何着手做以下工作?我需要将各个元素中的数字相加,并将总数分配给一个新变量。我已经试了好几天,运气不好。我不确定是否必须先把数字和字母分开 列表=['2H','4B'] 任何帮助都将不胜感激 编辑: 谢谢你的回复。我不知道为什么我不能得到这个权利,它似乎应该是如此简单 我会给你们更多的信息 下面的列表代表扑克牌,第一个数字或字母是面值,即:2或3,但也可以是代表国王的“K”,其值为10。第二部分是卡片套装,即俱乐部的C或红心的H。我需要把这两张牌的面值加起来,得到手牌总数。更准确的列表可能如

我将如何着手做以下工作?我需要将各个元素中的数字相加,并将总数分配给一个新变量。我已经试了好几天,运气不好。我不确定是否必须先把数字和字母分开

列表=['2H','4B']

任何帮助都将不胜感激

编辑:

谢谢你的回复。我不知道为什么我不能得到这个权利,它似乎应该是如此简单

我会给你们更多的信息

下面的列表代表扑克牌,第一个数字或字母是面值,即:2或3,但也可以是代表国王的“K”,其值为10。第二部分是卡片套装,即俱乐部的C或红心的H。我需要把这两张牌的面值加起来,得到手牌总数。更准确的列表可能如下所示


list1=['KH','10C']

您应该避免使用函数名作为变量名,即list=

有几种方法可以做到这一点,我建议您查看关于切片和索引字符串的Python文档

l = ['2H','4B']

result = sum(int(x[0]) for x in l)
print(result)
结果等于列表中每个元素的第一个字符之和。我已将每个索引元素0转换为整数以允许加法

您也可以通过以下方式执行此操作:

result = 0
for x in l:
    result += int(x[0])
print(result)

这有用吗。无论数字在元素中的位置如何,它都会有所帮助

list1 = ['2H','4B']
list1=[word for x in list1 for word in x] #== Split the elements
print(list1)
new_var=0
for value in list1:
    try:
        value=int(value) #=== Convert to int
        new_var+=value #== Add value
    except ValueError:
        pass
print(new_var)

一种方法是使用列表理解和
re.findall
从每个列表条目中提取前导数字:

list=['2H','4B']
nums=[int(re.findall(r'^\d+',x)[0])表示列表中的x]#[2,4]
输出=总和(nums)#6

您可以从每个字符串中提取数字,然后添加它们

你可以用

total = 0
list = ['2H','4B']
    
for element in list:
    res = [int(i) for i in element.split() if i.isdigit()]
    total += sum(res)

print(total)

这回答了你的问题吗?这假设每个字符串值始终只有一个前导数字字符(可能是真的,但OP没有提到这一点)。谢谢您的回复。如果列表如下:你能在房间里再次加入吗?谢谢你加入了@TangerCity。过来看。