Python元组操作

时间:2011-01-24 23:33:22

标签: python tuples

[('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]的值?

4 个答案:

答案 0 :(得分:3)

使用列表推导转换为float和sum:

sum(float(x) for x in my_list[0][1:13])

编辑:eeks,范围错了。根据评论编辑。

答案 1 :(得分:2)

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]))

答案 2 :(得分:1)

如果您想避免创建额外的临时列表,可以使用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

答案 3 :(得分:0)

可以使用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])