このようにリストを空にするのはとても「汚い」ように思えます:
while len(alist) > 0 : alist.pop()
それを実行する明確な方法は存在しますか?
ベストアンサー1
これは実際にリストから内容を削除しますが、古いラベルを新しい空のリストに置き換えることはありません。
del lst[:]
次に例を示します。
lst1 = [1, 2, 3]
lst2 = lst1
del lst1[:]
print(lst2)
完全性を期すために、スライスの割り当てでも同じ効果が得られます。
lst[:] = []
また、リストの一部を縮小すると同時に一部を置き換えるためにも使用できます (ただし、これは質問の範囲外です)。
lst = []
を実行してもリストは空にならず、単に新しいオブジェクトが作成され、それが変数にバインドされるだけであることに注意してくださいlst
。ただし、古いリストには同じ要素が残り、他の変数バインディングがあった場合は効果が明らかになります。