Pythonのextendメソッドの使い方と解説

Pythonのextendメソッドはリストに要素を追加する時に使うメソッドです。ここで一通り解説します。

目次

1. Pythonのextendメソッド

extendメソッドは次のように書きます。任意のリストに指定の要素を追加するメソッドです。

In [ ]:
''' extendメソッドの書き方 '''
リスト.extend(追加したいリスト or タプル or 集合)
  • 引数のパラメータ:extend()の引数にはイテラブル(リストやタプル、集合)を渡します。
  • 返り値:このメソッドには返り値はありません。単純にリストに要素を追加するだけです。

extendメソッドはリストメソッドなのでリスト以外のオブジェクトに使うことはできません。

2. Pythonのextendメソッドの使い方

早速、次のコードをご覧ください。

In [1]:
''' extendメソッドの使い方 '''
list_a = [123, 'abc', 456, 'def', 789]
list_b = [2019, 'heisei']

print('元のリスト:', list_a)
list_a.extend(list_b)  #  返り値はありません。
print('実行後のリスト:', list_a)  #  元のリストが変化します。
print('追加したリスト:', list_b)  #  extendメソッドの引数に入れたリストは変化しません。
元のリスト: [123, 'abc', 456, 'def', 789]
実行後のリスト: [123, 'abc', 456, 'def', 789, 2019, 'heisei']
追加したリスト: [2019, 'heisei']

list_aにextendメソッドを使ってlist_bの要素を追加しています。メソッド実行後はlist_aに要素が追加されており、かつlist_bには変化がないことをご確認ください。なお、以下のコードのようにextendメソッドの引数に渡すのはタプルや集合でも構いません。

In [1]:
''' extendメソッドの引数に渡すのは、tupleやsetでも構いません。 '''
#  言語のリスト
language = ['English', 'French', 'Japanese']
#  言語のタプル
lang_tuple = ['Chinese', 'Portuguese']
#  言語のセット
lang_set = {'Spanish', 'German'}


#  メソッド実行前のリスト
print(language)
#  タプルの要素を追加します。
language.extend(lang_tuple)
print('タプルを追加した後のリスト:', language)
#  続いてセットの要素を追加します。
language.extend(lang_set)
print('セットを追加した後のリスト:', language)
['English', 'French', 'Japanese']
タプルを追加した後のリスト: ['English', 'French', 'Japanese', 'Chinese', 'Portuguese']
セットを追加した後のリスト: ['English', 'French', 'Japanese', 'Chinese', 'Portuguese', 'Spanish', 'German']

実はextendメソッドではなくても+=演算子で同様のことができます。

In [1]:
''' 実はextendメソッドでなくても+=で連結することもできます。 '''
''' Python 3.7.2 '''

list1 = [1, 2, 3]
list2 = [4, 5, 6]
tuple1 = (7, 8, 9)
set1 = {10, 11, 12}

print('最初のlist1;', list1)  

#  ①list+=list
list1 += list2
print('①の演算後のlist1:', list1)
#  ②list+=tuple
list1+=tuple1
print('②の演算後のlist1:', list1)
#  ③list+=set
list1 += set1
print('③の演算後のlist1:', list1)
最初のlist1; [1, 2, 3]
①の演算後のlist1: [1, 2, 3, 4, 5, 6]
②の演算後のlist1: [1, 2, 3, 4, 5, 6, 7, 8, 9]
③の演算後のlist1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

実はPythonでは、extendメソッドと+=演算子は同じような動作になっているようです。そのため、どちらを使っても構いません。

ただしリストとリスト以外のオブジェクトを+演算子で連結しようとした場合はエラーになります。

In [1]:
''' ただし+演算子ではエラーになります。'''
''' Python 3.7.2 '''
list1 + tuple1
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-18c663f6fca3> in <module>
      1 ''' ただし+演算子ではエラーになります。'''
----> 2 list1 + tuple1

TypeError: can only concatenate list (not "tuple") to list

3. Pythonのextendとappend

Pythonでオブジェクトに要素を追加するメソッドにはextend()以外にappend()もあります。

extend()では、引数に渡したリストの要素を任意の要素に追加することができます。append()メソッドでは、引数に渡したリストの要素は追加先のリストにネスティングされた上で追加されます。

次のコードをご覧ください。

In [1]:
''' appendメソッドでは別のリストを追加することもできます。 '''
list1.append(list2)
print(list1)

''' もし要素のみを追加したい場合はextendメソッドを使います。 '''
list_a = [1, 2, 3, 4, 5]
list_b = ['a', 'b', 'c', 'd', 'e']
list_a.extend(list_b)
print(list_a)
[2, 3, 4, 5, 6, 7, 1, ['あ', 'い', 'う', 'え', 'お', 'か', 'き', 'く']]
[1, 2, 3, 4, 5, 'a', 'b', 'c', 'd', 'e']

Pythonのappendの使い方とよく聞かれることまとめ』でも解説しているの併せて確認しておきましょう。

4. まとめ

Pythonのextendメソッドはリスト専用のメソッドで、新たな要素を追加する時に使います。重要な点として、このメソッドはリストに要素を追加するのであって返り値はないということを覚えておきましょう。

メソッドの引数には、リストだけでなくタプルや集合でも可能です。また、細かいですがextendメソッドと+=は同じ動きをするので、実はどちらを使っても構いません。

Python初心者におすすめのプログラミングスクール

「未経験からでもPythonを学べるプログラミングスクールを探しているけど、色々ありすぎてわからない」なら、次の3つのプログラミングスクールから選んでおけば間違いはありません。

Aidemy Premium:全くの初心者ができるだけ効率よく短期間で実務的に活躍できるAI人材になることを目的とした講座。キャリアカウンセリングや転職エージェントの紹介などの転職支援も充実しており、受講者の転職成功率が高い。

AIジョブカレPythonの基本をおさえた人が、実際に機械学習やディープラーニングを活用できるようになるための講座。転職補償型があるなどキャリア支援の内容が非常に手厚く、講師の質も最高クラス。コスパ最高。Python初心者用の対策講座もある。

データミックスプログラミング経験者のビジネスマンが、更なるキャリアアップのためにデータの処理方法を学んでデータサイエンティストになるための講座。転職だけでなく起業やフリーランスとして独立する人も多い。Python初心者用の対策講座もある。

特に、あなたが以下のような目標を持っているなら、この中から選んでおけば間違いはないでしょう。

・未経験からPythonエンジニアとして就職・転職したい
・AIエンジニアやデータサイエンティストとしてキャリアアップしたい
・起業やフリーランスを視野に入れたい

理由は「Python初心者のためのおすすめプログラミングスクール3選」で解説しています。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる