为了账号安全,请及时绑定邮箱和手机立即绑定

函数中的“TypeError:'list'对象不可调用”

函数中的“TypeError:'list'对象不可调用”

翻过高山走不出你 2022-06-28 16:17:15
当我尝试通过函数运行列表并返回新列表时,我在第 6 行收到“TypeError:'list' object is not callable”消息。如果有帮助的话,两个被调用的变量一开始都是列表。该函数应该获取列表的第一个和最后一个数字,将它们相加,然后沿着列表向下移动到中心。例如,列表 [1, 4, 2, 2] 将导致一个新列表 [3, 6]。此功能仅涵盖偶数情况,因此无需担心。`def newListEven (l, newL):    regular=l;    reverse=l.reverse;    newL=[];    for n in range (0, int(len(l)/2)):        variable=(regular(n)+ reverse(n));        newL.append(variable);    return newL;`无论如何,正如我之前提到的,我得到一个:TypeError:“列表”对象不可调用第 6 行的消息。但是,它应该向下转移到打印列表的打印语句。
查看完整描述

2 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

def newListEven (l):
    reverse_l=l[::-1]
        return [reverse_l[n]+ l[n] for n in range (0, int(len(l)/2))]


查看完整回答
反对 回复 2022-06-28
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

  • 代码有几个问题。

    • l.reverse是一种方法。它是一种不返回任何内容的方法。做l.reverse()将修改列表l

    • 即使您进行了这两次更正,您的代码仍然存在另一个错误。<list>是可变的。考虑以下情况。

    • regular=l. 这l是一个列表regular。要访问列表,您需要使用[]. 前任。regular[0]

    • 第二个问题是您的reverse=l.reverse.

l = [1,2,3]

x = l

l.reverse()

print(l) # [3,2,1]

print(x) # [3,2,1]

与上述情况一样,l.reverse两者都会反转l,x因为x它只是对 l 的引用。为了避免这种使用copy或只是这样做x=l[:]。


您的代码已更新。


def newListEven (l, newL):

    regular=l[:];

    l.reverse();

    newL=[];


    for n in range (0, int(len(l)/2)):

        variable=(regular[n]+ l[n]);

        newL.append(variable);

    return newL;


查看完整回答
反对 回复 2022-06-28
  • 2 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信