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]
その他の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]
その他の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]