簡體   English   中英

將作為列表中元素的字符串值相加

[英]Adding string values together that are elements in a list

我將如何 go 關於執行以下操作? 我需要將各個元素中的數字相加,並將總數分配給一個新變量。 我已經嘗試了好幾天沒有太多運氣。 我不確定數字是否必須先從字母中分離出來?

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

任何幫助將不勝感激。

編輯:

謝謝大家的回復。 我不知道為什么我做不到這一點,它似乎應該如此簡單。

我會給你們更多的信息。

下面的列表代表撲克牌,第一個數字或字母是面值,即:2 或 3,但也可以是代表國王的“K”,其值將是 10。 第二部分是卡片套裝,即。 C 用於俱樂部或 H 用於紅心。 我需要將這兩張牌的面值相加並得到手牌總數。 更准確的列表可能如下所示。

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

這有幫助嗎。 無論它們元素中的數字 position 是多少,它都會有所幫助。

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)

您應該避免使用 function 名稱作為變量名稱,即 list =

有幾種方法可以做到這一點,我建議您查看有關切片和索引字符串的 Python 文檔。

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

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

結果等於列表中每個元素的第一個字符的總和。 我已將每個索引元素零轉換為 integer 以允許添加。

您也可以通過以下方式執行此操作:

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

一種方法是使用列表推導和re.findall從每個列表條目中提取前導數字:

list = ['2H','4B']
nums = [int(re.findall(r'^\d+', x)[0]) for x in list]  # [2, 4]
output = sum(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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM