从浮点数python列表生成均值列表

时间:2018-02-05 02:35:33

标签: python-3.x list mean

我正在尝试编写将在两个列表中使用浮点数的简单代码,找到每个列表中相同位置的两个数字之间的平均值,并使用更新的方法生成新列表。例如,使用 list_1 list_2

list_1: [1.0, 2.0, 3.0, 4.0, 5.0]
list_2: [6.0, 7.0, 8.0, 9.0, 10.0]
list_3: []

for i in list_1:
    for x in list_2:
        list_3.append((x+i)/2)
print (list_3)

在两个列表中找到浮点数之间的平均值,并创建一个新列表:

list_3 = [3.5, 4.5, 5.5, 6.5, 7.5]

我尝试创建一个for循环,但(出于显而易见的原因)不会迭代我想要它的方式。 输出是:

[3.5, 4.0, 4.5, 5.0, 5.5, 4.0, 4.5, 5.0, 5.5, 6.0, 4.5, 5.0, 5.5, 6.0, 6.5, 5.0, 5.5, 6.0, 6.5, 7.0, 5.5, 6.0, 6.5, 7.0, 7.5]

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:5)

您可以使用生成器表达式执行此操作,例如:

代码:

[sum(x)/len(x) for x in zip(list_1, list_2)]

如何:

函数zip()允许同时轻松迭代多个列表。从那里可以将这些值输入sum()len(),如图所示。

测试代码:

list_1 = [1.0, 2.0, 3.0, 4.0, 5.0]
list_2 = [6.0, 7.0, 8.0, 9.0, 10.0]

list_3 = [sum(x)/len(x) for x in zip(list_1, list_2)]
print(list_3)

结果:

[3.5, 4.5, 5.5, 6.5, 7.5]