在python中添加列表索引

时间:2014-03-11 21:30:44

标签: python arrays list

说我有这个清单:

[['1', '1', '1', '1', '1', '.12'], ['1', '1', '1', '1', '1', '.13']]

我想将每个数组的最终元素(.12和.13)加在一起,如何将这些字符串转换为实数,并将它们一起添加?还假设列表中的每个数组可以具有不同的长度。

5 个答案:

答案 0 :(得分:4)

>>> data = [['1', '1', '1', '1', '1', '.12'], ['1', '1', '1', '1', '1', '.13']]
>>> sum(float(x[-1]) for x in data)
0.25

答案 1 :(得分:0)

sum = 0.
for l in listOfLists:
    sum += float(l[-1])

答案 2 :(得分:0)

应该如此简单:

sum(map(float,(lst1[-1],lst2[-1])))

示例输出:

>>> lst1 = ["1", ".1"]
>>> lst2 = ["1", ".2"]
>>> sum(map(float,(lst1[-1],lst2[-1])))
0.30000000000000004

答案 3 :(得分:0)

这有效 -

>>> li = [['1', '1', '1', '1', '1', '.12'], ['1', '1', '1', '1', '1', '.13']]
>>> reduce(lambda x,y:float(x[-1])+float(y[-1]), li)
0.25

答案 4 :(得分:0)

as_string = [['1', '1', '1', '1', '1', '.12'], ['1', '1', '1', '1', '1', '.13']]
as_numbers = [map(float, arr) for arr in as_string]
result = sum(arr[-1] for arr in as_numbers)

或只是:

result = sum(float(arr[-1]) for arr in as_string)