python - 为何在这种情况下max()函数不能使用?
怪我咯
怪我咯 2017-04-18 09:22:28
0
2
1047
class LongestIncreasingSubsequence:
    def getLIS(self, A, n):
        # write code here
        dp=[0 for i in range(n)]
        dp[0]=1
        max=0
        print dp
        for i in range(n):
            now=0
            if i!=0:
                res=1
                for j in range(i):
                    if A[i]>A[j]:
                        res=dp[j]
                        now=now +1
                if now>=max:
                    max=now
                    dp[i]=res+1
                else:
                    dp[i]=res
        print dp
        #return max(dp)

kk=LongestIncreasingSubsequence()
kk.getLIS([1,4,2,5,3],5)

其中dp 是一个以int类型为成员的list
而使用max()函数时却会报错
TypeError: 'int' object is not callable
是由什么原因导致的?

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(2)
PHPzhong

5번째 줄에서 max 함수에 0 값이 할당되었습니다. max 함수는 라이브러리 함수와 동일한 이름을 갖지 않도록 변수 이름을 바꿉니다.

伊谢尔伦

이유는 @rayleisure가 말했듯이 여기에서 max 유형의 변수에 대한 참조로 int을 사용하여

이 되기 때문입니다. 으아악

내장 기능이 실패할 뿐만 아니라 다음과 같은 원인도 발생합니다.

으아악

정수 max,

를 호출했기 때문입니다.

간단히 말하면 다음과 같은 변수 이름을 지정하지 마세요.

  1. 키워드

  2. 내장 기능

  3. 사용 중인 표준 라이브러리 또는 패키지/모듈의 이름

같은 이름이에요.

여담

다음은 주제와 관련이 없습니다

  1. 현재 코드로 볼 때 함수만 작성하면 되는 것 같습니다. (온라인 문제은행을 사용하지 않는 한) 이 클래스를 작성하는 것은 중복된 것 같습니다.

  2. 목록의 길이를 전달할 필요가 없습니다. Python에서 목록의 길이를 묻는 것은 len()

  3. 을 사용하여 쉽게 수행할 수 있습니다.
  4. LIS 문제의 경우 코드를 단순화했습니다.

LIS의 길이만 찾으세요:

으아악

LIS 전체가 나오길 요구하고 있습니다:

으아악

테스트:

으아악

결과:

으아악

내가 답변한 질문: Python-QA

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!