파이썬 코드로 수선화의 수를 어떻게 표현하나요?
수선화 숫자의 파이썬 코드는 다음과 같습니다.
수선화 숫자는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!