weixin_45864635 2021-07-16 11:26 采纳率: 100%
浏览 16
已结题

一个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())

  • 写回答

1条回答 默认 最新

  • python收藏家 2021-07-16 12:06
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月4日
  • 已采纳回答 7月16日
  • 创建了问题 7月16日