一个lambda位置不同引发的map错误

img

img

class wei_3:

def __init__(self,ar):
    self.ar = ar

def shu(self):
    return [*zip(ar[0],ar[1])]

def zuo(self):
    br = [ar[1][i-1] for i in range(len(ar[1]))]
    return [*zip(br,ar[1])]

def you(self):
    br =[]
    for i in range(1,len(ar[1])):
        br.append(ar[1][i])
    br.append(ar[1][0])
    return [*zip(ar[1],br)]

def a(self):
    return [self.shu(),self.zuo(),self.you()]

c = lambda x: {(x[0] + x[1]) % 10, max(x) - min(x), (min(x) + 10 - max(x)) % 10}

def b(self):
    return [list(map(self.c,i)) for i in self.a()]

ar = [ [1,2,3,4,5,6],[1,4,8,6,8,2]]
a = wei_3(ar)
print(a.b())

两个地方改下,第一个把c=lambda x....这个写在类 外面, 第二个def b(self) 里面self.c 改成 c 就行