我正在尝试编写将在两个列表中使用浮点数的简单代码,找到每个列表中相同位置的两个数字之间的平均值,并使用更新的方法生成新列表。例如,使用 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]
任何帮助将不胜感激!
答案 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]