首页 > 解决方案 > 从列表中减去值,收到“生成器对象不可下标”错误

问题描述

我试图从彼此中减去两个列表的值。像这样:

    a = [1,2,3,4,5] b = [1,2,3,4,5] 
    a - b = [0,0,0,0,0] 

但是,我尝试执行的循环不断给我“生成器对象不可下标”,并引用了我的代码的这一部分:

      distances_1 = [a[z] - b[z] for z in x]

我的样本数据在每个文件的维度上都不同;不过,这是一个示例:

    x = [1.2323 2.5689] y = [2.3565 3.58789]

这是我的代码示例:

    def distances_z(x,y):
    dct = {}
    for i in y:
        a = (i.split(' ',)[0] for i in y)
        for z in x:
            b = (z.split(' ',1)[0] for z in x)
            distances_1 = [a[z] - b[z] for z in x]
            return distances_1
        dct[i +"_"+"list"] = [distances_1]
    print(dct)
    return dct

我认为这是我的ab变量未被识别为整数的问题。我尝试使用 将它们转换为浮点数float(),但它不起作用。

标签: pythonlistgenerator-expression

解决方案


尝试这个

a = [1,2,3,4,5] 
b = [1,2,3,4,5] 
c = [x[0] - x[1] for x in zip(a,b)]

给出输出

[0, 0, 0, 0, 0]

推荐阅读