在python中,如果不使用内置函数(仅使用循环),如何减去两个长度相同的列表中的值

2024-10-03 00:32:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图减去两个长度相同的列表中的值,以形成一个新的列表。例如,如果我有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])]

这是给我一个浮动,而不是一个列表


Tags: in程序列表forlendef组件range
3条回答

您可以使用内置的zip以以下方式执行您想要的操作(是的,我知道您说过只使用for):

def calcMeanDiff(numbers1,numbers2):
    return [abs(x-y) for x,y in zip(numbers1,numbers2)]
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]

您需要将计算差值添加到列表中,然后返回该值 列表您所做的就是在每个循环中将这些值分配给差异(变量) 每个循环都会发生变化

试试这个

def calcMeanDiff(numbers1,numbers2):
    diff = []
    for i in range(len(numbers1)):
        difference=[abs(numbers1[i]-numbers2[i])]
        diff += difference
    return diff

您应该创建一个新列表来保存差异

相关问题 更多 >