递归检查python中列表的列表

时间:2016-01-01 17:48:53

标签: python recursion

我试图计算每2个等级' (列出每个元素)以递归方式平均。

list = [['2.5', '45'], ['59', '99']]

编辑:

我改变了算法,我的代码是:

def a(lst):
    if lst == []:
        return 0
    else:
        return lst[0] / 2 + a(lst[1:2])


lst = [9.600000000000001, 37.2, 35.6, 34.4]
a(lst)

它可以完美地计算列表前2个元素的平均值。我想知道如何为所有元素生成它。

2 个答案:

答案 0 :(得分:1)

这可以通过列表理解来完成:

   >>> lst=[['2.5', '45'], ['59', '99']]
   >> avg = [sum(map(float, x))/len(x) for x in lst]
   [23.75, 79.0]

因此,上述表达式中发生的情况是,对于x的每个子列表lst,我们总结了此子列表{{1}的每个元素的float值。然后按其长度x潜水,以获得平均值

注意:

避免使用Python内置名称命名变量,以免在脚本中隐藏它们

答案 1 :(得分:0)

例如

lst=[['2.5', '45'], ['59', '99']]
averages=[(float(x)+float(y))/2 for x,y in lst]
print(averages)