[('1950', '6.5', '6.4', '6.3', '5.8', '5.5', '5.4', '5.0', '4.5', '4.4', '4.2',
'4.2', '4.3', ' \n')]
我該如何總結位置[1]到[12]的值?Python元組操作
[('1950', '6.5', '6.4', '6.3', '5.8', '5.5', '5.4', '5.0', '4.5', '4.4', '4.2',
'4.2', '4.3', ' \n')]
我該如何總結位置[1]到[12]的值?Python元組操作
轉換爲浮動,使用列表理解和:
sum(float(x) for x in my_list[0][1:13])
編輯:eeks,範圍是錯誤的。按照評論編輯。
小心,這一個只能從位置1到11! – 2011-01-25 00:04:28
L=[('1950', '6.5', '6.4', '6.3', '5.8', '5.5', '5.4', '5.0', '4.5', '4.4', '4.2', '4.2', '4.3', ' \n')]
sum(map(float,L[0][1:13]))
你可能使用lambda和reduce
。
lst = [('1950', '6.5', '6.4', '6.3', '5.8', '5.5', '5.4', '5.0', '4.5', '4.4', '4.2', '4.2', '4.3', ' \n')]
lst_sum = reduce(lambda x, y : float(x) + float(y), lst[0][1:12])
不會使用`sum`作爲變量名稱,因爲它與內置函數`sum`衝突 - 巧合的是和reduce + lambda做同樣的工作。我認爲OP期望將這些項目作爲花車添加,而不是作爲字符串 – 2011-01-24 23:41:51
如果你想避免創建一個額外的臨時列表,你可以使用islice
>>> from itertools import islice
>>> L=[('1950', '6.5', '6.4', '6.3', '5.8', '5.5', '5.4', '5.0', '4.5', '4.4', '4.2', '4.2', '4.3', ' \n')]
>>> sum(map(float,islice(L[0],1,13)))
62.5
說明該解決方案提your_list [0]引用元組是列表的第一個元素(我不確定這是否是有意的) – 2011-01-25 00:59:21