我試圖對(duì)列表中“單個(gè)”元素的列表求和。我見(jiàn)過(guò)很多帖子使用sum,但它們只對(duì)整個(gè)列表進(jìn)行求和,而不是列表中的單個(gè)數(shù)字。這通常用于數(shù)字命理學(xué),因此需要求和并將每個(gè)元素解析為其9進(jìn)制等效值。
Current result:
numsum = [1, 23, 45, 76, 123]
output = sum(numsum)
print(output)
Output: 268
Required result:
output: [1, 5, 9, 4, 6]
我曾嘗試使用for循環(huán),但沒(méi)有真正成功。有人知道最pythonic的方法是什么嗎?
看起來(lái)你想對(duì)每個(gè)數(shù)字的位數(shù)求和。
您可以在列表理解中使用到字符串的中間轉(zhuǎn)換:
一種更為數(shù)值化的方法可能是使用重復(fù)除以10:
output:
[1, 5, 9, 13, 6]
recursive approach:
如果必須將數(shù)字減少到一個(gè)位數(shù)(
76
->13
->4
),則可以將sum_digit
函數(shù)轉(zhuǎn)換為遞歸函數(shù):output:
[1, 5, 9, 4, 6]