如何删除与lis元素关联的类型错误

2024-09-29 19:35:54 发布

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

三角形数

number = '''3
7 4
2 4 6
8 5 9 3'''

从上到下求最大和。你知道吗

pyramidlist = [[int(x) for x in y.split(' ')] for y in number.split('\n')]

for i in range(len(pyramidlist) - 2, -1, -1):
    for j in range(i+1):
        pyramidlist[i][j] += max(pyramidlist[i+1][j], pyramidlist[i+1][j+1])

我得到一个错误:

pyramidlist[i][j] += max(pyramidlist[i+1][j], pyramidlist[i+1][j+1])
TypeError: 'int' object is not callable

什么是金字塔列表以及我认为max不工作的原因:

In [183]: pyramidlist
Out[183]: [[3], [7, 4], [2, 4, 6], [8, 5, 9, 3]]

In [184]: max(pyramidlist[1][0],pyramidlist[1][1])

Traceback (most recent call last):

  File "<ipython-input-184-c42be0ee587f>", line 1, in <module>
    max(pyramidlist[1][0],pyramidlist[1][1])

TypeError: 'int' object is not callable

问题:Project Euler


Tags: innumberforobjectisnotrangemax
1条回答
网友
1楼 · 发布于 2024-09-29 19:35:54

你在用IPython。在执行之前,在代码/单元格中指定的所有变量在整个会话中保留其值。你知道吗

如果你这么做了

max = 25

那么

max(3, 4)

会给你

TypeError: 'int' object is not callable

如果错误地替换了其中一个内置函数,则可以按如下方式将其原值返回:

import builtins
max = builtins.max

max(3, 4)
# 4

正如@user2357112所评论的,一个更简单的方法是

del max

用他自己的话说

is easier and a bit more thorough. (It looks like it should make things worse, but it doesn't.)

相关问题 更多 >

    热门问题