print()のような関数は値を返しません。しかし、時には私はそれらを反復する必要があります。 "for"を使用するのではなく、関数型プログラミングでコードする方法はありますか?func()が値を返さないときにmap(func、iterator)関数を使う方法は?
# changes some values of a list according to another pointer iterator.
thelist = [1]*100
slices = [(3,8),(9,15),(72,88)]
for items in slices:
for i in range(items[0],items[1]):
thelist[i] = 8
ここでは、私が望むのは "thelist"の値を変更することです。どのようにコードの効率を失うことなく、comprehensionやmap()などを使用して再コード化するか。
"しかし、python3に移行すると、多くのスペースを占有する新しいリストを生成する必要があります。私はあなたが意味することを理解していません。 Python 3では、 'map'は遅延イテレータを返し、Python 2では' map'は完全にマテリアライズされた 'list'を返します。新しいリストを作成せずにPython 3で行うことができないPython 2で行うことができるのは正確です。 –
@ juanpa.arrivillaga私の混乱する言葉をお詫び申し上げます。私はその質問を書き直す。今あなたには意味がありますか? – NuosiWu
答えはあなたが 'print' *のような副作用を持つ関数構造体を使うべきではない、あるいはあなたの例のようにリストを突然変異させるべきです。 –