Python 코드로 모든 수선화의 수를 찾는 방법

coldplay.xixi
풀어 주다: 2020-08-12 14:57:02
원래의
8153명이 탐색했습니다.

Python 코드에서 모든 수선화 숫자를 찾는 방법: 먼저 목록을 사용하여 모든 세 자리 숫자를 푸시하고 각 숫자를 표시한 다음 마지막으로 True로 표시된 튜플을 필터링합니다. 문장 그룹의 두 번째 값을 목록 구조에 넣고 인쇄 문을 추가합니다.

Python 코드로 모든 수선화의 수를 찾는 방법

모든 수선화 수를 찾는 Python 코드:

방법 1:

>>> 
>>> 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]
>>>
로그인 후 복사

관련 학습 권장 사항: python 동영상 튜토리얼

지침 :

위 코드는 분해될 수 있습니다. 세 문장 코드:

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로 표시된 튜플을 필터링한다는 의미입니다.

세 번째 문장은 c를 의미합니다.

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

방법 2:

목록 파생만 사용하세요.

>>> a = [i**3+j**3+k**3 for i in range(1, 10) for j in range(0, 10) for k in range(0, 10) if i*100+j*10+k == i**3+j**3+k**3]
>>> print(a)
[153, 370, 371, 407]
>>>
로그인 후 복사

관련 추천: 프로그래밍 비디오 코스

위 내용은 Python 코드로 모든 수선화의 수를 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿