私は学校に行くお金がないので、高速道路の料金所でシフトを組みながら Python を独学しています (顧客の少ない長い夜)。(ところで: Coursera はすべての言語に翻訳する必要があります...)
ここで、リストがある場合は次のことを読みましたl
:
l = ['a', '', 'b']
そして、次のように空の文字列を除外したい:
l = [c for c in l if c]
またはそのように:
l = filter(lambda x: x, l)
代わりにこれを行うことをお勧めします。
l[:] = ... # either method 1 or method 2 above
l
特に他の変数がそれを指している場合は、最初の への参照を「失う」ことはありません。
私の質問:
l[:]
この場合、「 」の内容を意味し、「同じ」へl
の再割り当てを明確に許可するのはなぜですか?l
for same-list-reassignmentsの使い方を完全に誤解していませんか?
l[:]
もし私が を持っていてl
を頼んだらl[:]
、後者はオリジナルの実際のコピーだと思いましたl
か?
参考:「Pythonを学ぶ」 →リストをコピーするには、組み込みのリスト機能や標準ライブラリのコピーモジュールを使うなど、さまざまな方法があります。おそらく最も一般的な方法は、最初から最後までスライスすることです
ありがとう!