lst.pop(i) は式で、del lst[i] は文です。
式は必ず値を持ち(註1)、他の式や文の一部にすることができます。
例えば代入文(註2)の右辺に式である lst.pop(e) を持ってくることができますが、
Python
1>>> lst = [3, 1, 4]
2>>>
3>>> e = lst.pop(0)
4>>> print(e, lst)
53 [1, 4]
del lst[i] は文なのでそのような使い方はできません。
Python
1>>> lst = [3, 1, 4]
2>>> e = del lst[0]
3 File "<stdin>", line 1
4 e = del lst[0]
5 ^
6SyntaxError: invalid syntax
これをもうちょっと分かり易く表現すると『要素を返す・返さない』に繋がるわけです。
どう違うのか、どう使い分けるのか教えていただけたら嬉しいです。
delはリストの要素の削除以外にも様々適用できます。
Python
1>>> a = 42
2>>> print(a)
342
4>>> del a
5>>> print(a)
6Traceback (most recent call last):
7 File "<stdin>", line 1, in <module>
8NameError: name 'a' is not defined
リストの要素の削除にはpopを使った方が分かり易いかな、と個人的には思います。
註1:
ただし、常に意味のある値を返すとは限りません。
註2:
代入が式である言語もあります。
...更にややこしいことに、最新のPythonには代入式と代入文の両方があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。