概要
リストに対する要素の追加、リストの結合について整理。
- リストへの1つの要素の追加
- appendが簡明、ただし破壊的
- extendも使えるがリストとして追加、破壊的
- +演算子もリストとして追加、非破壊的
- リスト同士の結合
- appendは使えない
- extendは破壊的にリストを追加
- +演算子は非破壊的にリストを追加
リストへの要素の追加
appendは破壊的
append
で1つの要素をリストに追加できる。append
は破壊的で元のリストを改変する。戻り値はNone
。
1 2 3 4 5 6 7 |
x = a.append(4) print(a) print(x) # [1, 2, 3, 4] # None |
append
は1つの引数しか持てない(append(4, 5)
とはできない)。
extendはリストを追加(破壊的)
extend
でも要素を追加できるが、要素そのものではなく、追加したい要素を含むリストとして追加する。extend
は破壊的で元のリストを改変する。戻り値はNone
。
1 2 3 4 5 6 7 8 9 |
a = [1, 2, 3] x = a.extend([4]) print(a) print(x) # [1, 2, 3, 4] # None |
+演算子もリストの演算(非破壊的)
+演算子もextend
と同じくリストを追加する。extend
と違って非破壊的で、元のリストは改変されず、結果は戻り値で返される。
1 2 3 4 5 6 7 8 9 |
a = [1, 2, 3] x = a + [4] print(a) print(x) # [1, 2, 3] # [1, 2, 3, 4] |
リストの結合
appendは使えない
append
は引数をリストの要素として追加するので、リストを引数に与えるとそのリストが要素として追加されてしまう。
1 2 3 4 5 6 7 8 9 10 11 12 |
a = [1, 2, 3] b = [4, 5, 6] c = a.append(b) print(a) print(b) print(c) # [1, 2, 3, [4, 5, 6]] # [4, 5, 6] # None |
extendはOk(破壊的)
extend
は引数に与えたリストで元のリストを拡張する。ただし破壊的で元のリストが改変される。
1 2 3 4 5 6 7 8 9 10 11 12 |
a = [1, 2, 3] b = [4, 5, 6] c = a.extend(b) print(a) print(b) print(c) # [1, 2, 3, 4, 5, 6] # [4, 5, 6] # None |
+演算子もOk(非破壊的)
+演算子もextendと同じくリストを拡張するが非破壊的。拡張と言うよりも、くっつける/追加するというイメージ。
1 2 3 4 5 6 7 8 9 10 11 12 |
a = [1, 2, 3] b = [4, 5, 6] c = a + b print(a) print(b) print(c) # [1, 2, 3] # [4, 5, 6] # [1, 2, 3, 4, 5, 6] |