Pythonのリストを結合する

概要

実現方法・説明

ここでは既存のリストとリストを結合する方法を説明する。

extend()を使う

extend()を使えば複数の異なったリストを1つにすることが出来る。
こんな感じ。

new_list.extend(other_list)

これでリスト「new_list」と「other_list」が結合される。

このとき「new_list」の内容は、2つのリストの要素をすべて含むリストになるが、その結果「other_list」が消えてしまうわけではなく、もとのままの値で残ることに注意。

+を使う

リストの結合には、+を使用する方法もある。
こんな感じ。

new_list = New_list + other_list

この場合の結果は、直近に説明したextend()の内容と同様。

注意点

append()の引数にリストを指定しても、リストの結合は行われないので注意。
(引数に指定したリストが、もとのリストの要素のひとつになるだけ)

使用例

動作確認環境:Python3.6.5 / macOS 10.15.6

ex.1 extend()を使ったリストの結合

最初に結合対象とするリストを2つ作成し、結合する。
内容を表示しながら見ていこう。

コード
new_list = ['111', '222', '333']
other_list = ['AAA', 'BBB']

print('--- 結合前 ---')
print("内容 new/other")
print(new_list)
print(other_list)

new_list.extend(other_list)

print('--- 結合後 ---')
print("内容 new/other")
print(new_list)
print(other_list)
実行結果

— 結合前 —
内容 new/other
[‘111’, ‘222’, ‘333’]
[‘AAA’, ‘BBB’]
— 結合後 —
内容 new/other
[‘111’, ‘222’, ‘333’, ‘AAA’, ‘BBB’]
[‘AAA’, ‘BBB’]

解説

1行めで、要素が3つのリスト「new_list」を作成する。
2行めで、要素が2つのリスト「other_list」を作成する。
9行めで、作成した2つのリストを結合する。ここでは「new_list」に「other_list」が結合しているので、「new_list」の内容が変更され要素は5つになる。なお「other_list」の内容は変わらない。

ex.2 +を使ったリストの結合

最初に結合対象とするリストを2つ作成し、結合する。
ex.1との違いは、extend()ではなく+を使用していることだ。
内容を表示しながら見ていこう。

コード
new_list = ['111', '222', '333']
other_list = ['AAA', 'BBB']

print('--- 結合前 ---')
print("内容 new/other")
print(new_list)
print(other_list)

new_list = new_list + other_list

print('--- 結合後 ---')
print("内容 new/other")
print(new_list)
print(other_list)
実行結果

— 結合前 —
内容 new/other
[‘111’, ‘222’, ‘333’]
[‘AAA’, ‘BBB’]
— 結合後 —
内容 new/other
[‘111’, ‘222’, ‘333’, ‘AAA’, ‘BBB’]
[‘AAA’, ‘BBB’]

解説

1行めで、要素が3つのリスト「new_list」を作成する。
2行めで、要素が2つのリスト「other_list」を作成する。
9行めで、作成した2つのリストを結合する。ここでは「new_list」に「other_list」が結合して「new_list」にしているので、「new_list」の内容は変更されて要素は5つになるが「other_list」の内容は変わらない。(変数の加算と同じ)

ex.3 +を使ったリストの結合2

結合後も元のリスト(この場合、new_listとother_list)の要素を保持して置きたい場合がある。この場合も+を使って処理するとよい。結合の結果を新しいリストとすればいいのだ。
内容を表示しながら見ていこう。

コード
new_list = ['111', '222', '333']
other_list = ['AAA', 'BBB']

print('--- 結合前 ---')
print("内容 new/other")
print(new_list)
print(other_list)

result_list = new_list + other_list

print('--- 結合後 ---')
print("内容 new/other/result")
print(new_list)
print(other_list)
print(result_list)
実行結果

— 結合前 —
内容 new/other
[‘111’, ‘222’, ‘333’]
[‘AAA’, ‘BBB’]
— 結合後 —
内容 new/other/result
[‘111’, ‘222’, ‘333’]
[‘AAA’, ‘BBB’]
[‘111’, ‘222’, ‘333’, ‘AAA’, ‘BBB’]

解説

1行めで、要素が3つのリスト「new_list」を作成する。
2行めで、要素が2つのリスト「other_list」を作成する。
9行めで、作成した2つのリストを結合する。ここでは「result_list」に「new_list」と「other_list」の結合結果をセットしているので、「result_list」の内容が変更され要素は5つになる。そして「new_list」「other_list」の内容は変わらない。

補足

なし

Pythonバンザイ

タイトルとURLをコピーしました