Pythonでは、「x in」変数なしでこのリスト内包表記を書く方法はありますか(完全に未使用のままになっているため)?同じことがジェネレータ式にも当てはまります。これが頻繁に発生することはないと思いますが、私はこれに何度か遭遇し、知りたいと思っていました。
次に例を示します。
week_array = ['']*7
four_weeks = [week_array[:] for x in range(4)]
(また、これを構築するためのよりエレガントな方法はありますか?)
Pythonでは、「x in」変数なしでこのリスト内包表記を書く方法はありますか(完全に未使用のままになっているため)?同じことがジェネレータ式にも当てはまります。これが頻繁に発生することはないと思いますが、私はこれに何度か遭遇し、知りたいと思っていました。
次に例を示します。
week_array = ['']*7
four_weeks = [week_array[:] for x in range(4)]
(また、これを構築するためのよりエレガントな方法はありますか?)
私はそうは思いませんし、に害はありませんx
。このように値が使用されていない場合によく見られるのは、自由変数としてアンダースコアを使用することです。たとえば、次のようになります。
[week_array[:] for _ in range(4)]
しかし、free 変数が使用されないことを示すのは慣例にすぎません。
いいえ。値が使用されていない場合でも、両方の構成にイテレータが必要です。
week_array = ['']*7
four_weeks = map(list, [week_array]*4)
これは、マップを使用するという点で他の回答と似ていますが、私が行ったことは、あなたが使用しているのと同じ機能を使用しています。
four_weeks = map(lambda i: week_array[:], range(4))
_
また、たとえばを使用する場合と比較した場合の主な利点は、既に使用されている可能性があり ( _
gettext で頻繁に使用されます)、その値を反復子の最後の項目に変更することです。次の例を参照してください。
[x for x in range(4)]
assert x == 3, 'x should be equal to 3'