teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2020/06/07 14:05

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  lst.pop(i) は**式**で、del lst[i] は**文**です。
2
- 式は必ず値を持ち、他の式や文の一部にすることができます。
2
+ 式は必ず値を持ち(**註1**)、他の式や文の一部にすることができます。
3
3
 
4
- 例えば代入文の右辺に式である lst.pop(e) を持ってくることができますが、
4
+ 例えば代入****(**註2**)の右辺に式である lst.pop(e) を持ってくることができますが、
5
5
  ```Python
6
6
  >>> lst = [3, 1, 4]
7
7
  >>>
@@ -20,4 +20,28 @@
20
20
  SyntaxError: invalid syntax
21
21
  ```
22
22
 
23
- これをもうちょっと分かり易く表現すると『要素を返す・返さない』に繋がるわけです。
23
+ これをもうちょっと分かり易く表現すると『要素を返す・返さない』に繋がるわけです。
24
+
25
+ > どう違うのか、どう使い分けるのか教えていただけたら嬉しいです。
26
+
27
+ delはリストの要素の削除以外にも様々適用できます。
28
+ ```Python
29
+ >>> a = 42
30
+ >>> print(a)
31
+ 42
32
+ >>> del a
33
+ >>> print(a)
34
+ Traceback (most recent call last):
35
+ File "<stdin>", line 1, in <module>
36
+ NameError: name 'a' is not defined
37
+ ```
38
+
39
+ リストの要素の削除にはpopを使った方が分かり易いかな、と個人的には思います。
40
+
41
+ ---
42
+ **註1**:
43
+ ただし、常に意味のある値を返すとは限りません。
44
+
45
+ **註2**:
46
+ 代入が**式**である言語もあります。
47
+ ...更にややこしいことに、最新のPythonには代入**式**と代入**文**の両方があります。