for i in range(0,30,3):
print(i)
上記の必須ループの機能スタイルは何ですか?範囲から1行で項目を印刷する機能的な方法は何ですか?
lambda x: print(x), range(0,30,3)
for i in range(0,30,3):
print(i)
上記の必須ループの機能スタイルは何ですか?範囲から1行で項目を印刷する機能的な方法は何ですか?
lambda x: print(x), range(0,30,3)
lambda
はここでは必要ありません。アンパックオペレータ*
を使用してください。
In [163]: print(*range(0, 30, 3))
0 3 6 9 12 15 18 21 24 27
別々の行に印刷したい場合は、それも可能です。
In [164]: print(*range(0, 30, 3), sep='\n')
0
3
6
9
12
15
18
21
24
27
あなたはPythonの2.xのを使用している場合、あなたは将来のインポートが必要になります:
from __future__ import print_function #dont't need this for python 3.x
print(*range(0,30,3), sep='\n')
物事の機能的な方法は、しかし機能
map(print, range(30))
にマッピングのコレクションでありますなぜなら、Pythonではmap
がジェネレータを返すので、それを何とか反復する必要があります。これはリストに変換することでできます
list(map(print, range(30)))
これは "副作用を引き起こす"と呼ばれ、 '[None、None、None、...]'のリストを生成します。これは一般に推奨されず、読みやすさが低下します。 –
@cᴏʟᴅsᴘᴇᴇᴅ:確かに。しかし、 'print'はその副作用のために本質的に使われます。純粋な機能スタイルでは、それは存在しません。しかし、一般的には、純粋な関数が与えられれば、これが方法になります。 –
はい、それを悪用するために 'map'を使用していませんか? –
自分自身が重複していることを発見しました – ERJAN
これを呼び出すことができますが、この質問を閉じて回答を削除します。 –
y = [iの範囲内(0,30,3)] – inxoy