ホームページ >バックエンド開発 >Python チュートリアル >すべての水仙の数を見つける方法の Python コード

すべての水仙の数を見つける方法の Python コード

coldplay.xixi
coldplay.xixiオリジナル
2020-08-12 14:57:028184ブラウズ

すべての水仙の番号を検索するための Python コード: 最初にリストを使用して 3 桁の番号をすべてプッシュし、各番号にマークを付けます。次に、True とマークされたタプルをフィルターで除外し、最後に最初の文に 2 番目の値を入力します。フィルターされたタプルをリスト構造に取り込み、print ステートメントを追加します。

すべての水仙の数を見つける方法の 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 ビデオ チュートリアル

手順:

上記のコードは、次の 3 行に分解できます。コード:

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))

最初の文は、リストを使用して 3 桁すべてを押し通すことを意味し、各数字にマークが付けられます。水仙が数えている場合は True をマークし、そうでない場合は False をマークします。マークと数字が付けられます。 1 つの祖先: (フラグ、値) に変換すると、すべてのタプルがリスト構造に配置されます。

2 番目の文は、True としてマークされたタプルを除外することを意味します。

3 番目の文は c を意味します。

print ステートメントを追加し、上記の 3 行のコードを実行して理解してください。

方法 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。