我试图减去两个长度相同的列表中的值以形成一个新列表。例如,如果我有 list1=[3,3,3] 和 list2=[2,2,2] 我想编写一个程序来减去组件并给出 list3=[1,1,1]我试过这个:def calcMeanDiff(numbers1,numbers2): for n in range(0,len(numbers1),1): difference=[abs(numbers1[n]-numbers2[n])]这是给我一个浮点数而不是一个列表
3 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
试试这个。
def calcMeanDiff(numbers1,numbers2):
diff = []
for i in range(len(numbers1)):
difference=[abs(numbers1[i]-numbers2[i])]
diff += difference
return diff
您应该创建一个新列表来保存差异。
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
def calcMeanDiff(numbers1,numbers2):
difference=[]
for n in range(len(numbers1)):
difference.extend([abs(numbers1[n]-numbers2[n])])
return difference
list1=[3,3,3]
list2=[2,2,2]
list3=calcMeanDiff(list1,list2)
print(list3)
# output [1,1,1]
您需要将计算差值添加到列表中,然后返回该列表。您所做的是在每个循环中将这些值分配给每个循环都会改变的差异(变量)。
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
您可以通过zip
以下方式使用内置函数执行您想要的操作(是的,我知道您说只使用for
):
def calcMeanDiff(numbers1,numbers2): return [abs(x-y) for x,y in zip(numbers1,numbers2)]
添加回答
举报
0/150
提交
取消