言語バージョン 3.9.0

公開日 2020年11月21日 JST

更新日 2020年12月25日 JST

コード例の出力としてprint関数を使用しています。

使用方法がわからない場合は以下のページを参照してからコード例を確認してください。

print関数の使用方法

extend(リスト、配列)

このページでは豊富な例を用いてPythonの listクラス のextendの使い方を学ぶことができます。

extendは listクラス のメソッドの1つです。extendを使用してlistを拡張することが可能です。
引数として反復可能(iterable)なオブジェクトを取り、使用したlistの末尾に追加することができます。

listクラスの appendメソッド では複数の要素を一度に追加できませんでしたが、 extendを使用することで複数の要素をlistに追加できるようになります。

TL;DR

基本

# appendはlistが展開されない
list0 = ['Python', 'Programming', 'Coding']
list0.append(['--NOT EXTENDED--'])
print(list0)
==> ['Python', 'Programming', 'Coding', ['--NOT EXTENDED--']]




# extendはlistを拡張することが可能
list1 = ['Python', 'Programming', 'Coding']
list2 = ['--EXTEND--']
list1.extend(list2)
print(list1)
==> ['Python', 'Programming', 'Coding', '--EXTEND--']




# 異なる型の要素をもつlistでも拡張可能
list3 = ['January', 'February', 'March']
list4 = [4, True, {}]
list3.extend(list4)
print(list3)
==> ['January', 'February', 'March', 4, True, {}]




# extendは引数に反復可能(iterable)なオブジェクトを取る1
list5 = [1, 2, 3, 4]
# tupleはiterableなオブジェクト
tuple1 = ('first', 'second')
list5.extend(tuple1)
print(list5)
==> [1, 2, 3, 4, 'first', 'second']




# extendは引数に反復可能(iterable)なオブジェクトを取る2
list6 = ['1', '2', '3', '4']
# rangeはiterableなオブジェクト
range1 = range(100, 102)
list6.extend(range1)
print(list6)
==> ['1', '2', '3', '4', 100, 101]




# extendは引数に反復可能(iterable)なオブジェクトを取る3
list7 = ['apple', 'banana', 'kiwi']
# dictは反復可能(iterable)なオブジェクト
dict1 = {'py': 'Python', 'js': 'JavaScript'}
list7.extend(dict1)
print(list7)
==> ['apple', 'banana', 'kiwi', 'py', 'js']




# dictのバリューを追加する
list7.extend(dict1.values())
print(list7)
==> ['apple', 'banana', 'kiwi', 'py', 'js', 'Python', 'JavaScript']




# extendは引数に反復可能(iterable)なオブジェクトを取る4
list8 = [0, 1, 2]
# setは反復可能(iterable)なオブジェクト
set1 = {999}
list8.extend(set1)
print(list8)
==> [0, 1, 2, 999]

関連情報:appendメソッド(listクラス)の使用方法

その他のlist拡張方法(スライス操作、+)

# スライス操作を用いた拡張1
list1 = [0, 1, 2, 3, 4]
list2 = [100, 200, 300]
list1[len(list1):len(list1)] = list2
print(list1)
==> [0, 1, 2, 3, 4, 100, 200, 300]




# スライス操作を用いた拡張2
list3 = ['Python', 'Java']
tuple1 = ('JavaScript', 'Kotlin')
# list3[len(list3):len(list3)]と同意義
list3[len(list3):] = tuple1
print(list3)
==> ['Python', 'Java', 'JavaScript', 'Kotlin']




# +を用いた拡張1
list4 = [100, 200, 300]
list5 = ['tuple', 'list']
list4 = list4 + list5
print(list4)
==> [100, 200, 300, 'tuple', 'list']




# +を用いた拡張2
list6 = [100, 200, 300]
tuple2 = (1000, 2000)
list6 += tuple2
print(list6)
==> [100, 200, 300, 1000, 2000]

解説

基本

extendは引数に反復可能(iterable)なオブジェクトをとり、使用したlistを拡張します。
引数で与えたオブジェクトはすべて展開されるので、複数の要素を一度に対象のlistに追加することができます。

また、反復可能なオブジェクトにはtuple型やdict型なども含まれ、extendの引数に指定することが可能です。

# appendの場合
list1 = ['apple', 'banana', 'kiwi']
list2 = ['PEACH', 'GRAPE']
list1.append(list2)
print(list1)
==> ['apple', 'banana', 'kiwi', ['PEACH', 'GRAPE']]




# extendの場合
list3 = ['apple', 'banana', 'kiwi']
list4 = ['PEACH', 'GRAPE']
list3.extend(list4)
print(list3)
==> ['apple', 'banana', 'kiwi', 'PEACH', 'GRAPE']




# extendの引数は反復可能(iterable)なオブジェクト
list4 = [0, 1, 2, 3]
tuple1 = (4, 5, 6)
list4.extend(tuple1)
print(list4)
==> [0, 1, 2, 3, 4, 5, 6]

関連情報:appendメソッド(listクラス)の使用方法

その他のlist拡張方法(スライス操作、+)

extendを用いる他にもlistは拡張できます。 ここではスライス操作と+を用いた方法を挙げています。

extendと同様に反復可能なオブジェクトであればlistを拡張できるので、場面にあわせ使用を検討してください。

# スライス操作を用いた拡張
list1 = ['dog', 'cat', 'elephant']
list2 = ['dolphin', 'python']
list1[len(list1):] = list2
print(list1)
==> ['dog', 'cat', 'elephant', 'dolphin', 'python']




# +を用いた拡張
list3 = [0, 1, 2]
list4 = [3, 4, 5]
list3 += list4
print(list3)
==> [0, 1, 2, 3, 4, 5]

1次情報

リスト型についてもう少し - Pythonドキュメント

ミュータブルなシーケンス型 - Pythonドキュメント