>백엔드 개발 >파이썬 튜토리얼 >파이썬 코드로 수선화의 수를 표현하는 방법은 무엇입니까?

파이썬 코드로 수선화의 수를 표현하는 방법은 무엇입니까?

coldplay.xixi
coldplay.xixi원래의
2020-06-23 16:22:3913535검색

파이썬 코드로 수선화의 수를 표현하는 방법은 무엇입니까?

파이썬 코드로 수선화의 수를 어떻게 표현하나요?

수선화 숫자의 파이썬 코드는 다음과 같습니다.

수선화 숫자는 3자리 양의 정수를 나타내며, 각 숫자에 있는 숫자의 3제곱의 합은 그 자체와 같습니다. (예: 1^3 + 5^3+ 3^3 = 153)

다음은 모든 수선화의 수를 구하는 코드 문장입니다.

>>> 
>>> a = list(map(lambda x: x[1], filter(lambda x: x[0], [(i*100+j*10+k == i**3+j**3+k**3, i**3+j**3+k**3) for i in range(1, 10) for j in range(0, 10) for k in range(0, 10)])))
>>> print(a)
[153, 370, 371, 407]
>>>

설명:

위 코드는 다음과 같이 나눌 수 있습니다. 세 문장의 코드:

a = [(i*100+j*10+k == i**3+j**3+k**3, i**3+j**3+k**3) for i in range(1, 10) for j in range(0, 10) for k in range(0, 10)]
b = filter(lambda x: x[0], a)
c = list(map(lambda x: x[1], b))

첫 번째 문장은 목록을 사용하여 세 자리 숫자를 모두 순회하고 각 숫자를 표시로 표시하는 것을 의미합니다. 수선화가 계산 중이면 True로 표시하고, 그렇지 않으면 False로 표시합니다. . 마크와 숫자를 하나의 조상에 넣습니다: (플래그, 값), 모든 튜플은 목록 구조에 배치됩니다.

두 번째 문장은 True로 표시된 튜플을 필터링한다는 의미입니다.

세 번째 문장은 첫 번째 문장에서 필터링된 튜플의 두 번째 값을 목록 구조에 넣는다는 의미입니다.

print 문을 추가하고 위의 세 줄의 코드를 실행하여 이해하세요.

추천 튜토리얼: "Python 비디오 튜토리얼"

위 내용은 파이썬 코드로 수선화의 수를 표현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.