PythonでAppend ()の代わりにexpd ()を使う理由


あなたがPythonのnoobや専門家かどうか、あなたは確かにリストを聞いている.listはPythonの組み込みデータ型の一つです.
Pythonで空のリストを作成するのはとても簡単です.
my_list = []
一度空のリストを作成したら、それにアイテムを追加することができます.
Pythonは2つのメソッドを提供します.
これらのメソッドがどのように動作するかを理解することは、どちらを使用するかを選択することが重要です.

add ()

append() リストの最後に項目を追加します.この項目は、数値や文字列のような任意のPythonオブジェクトです.
文字列を追加する方法を次の例に示します'hello' の最後までmy_list リスト.
my_list.append('hello')
アフターappend() 操作my_list 一つの要素を含みます:
['hello']

extend ()

extend() iterableのすべての項目をリストの最後に追加します.iterableは、そのメンバーを一度に返すことができるPythonオブジェクトです.iterableの例はリスト、タプル、文字列です.
次の例では、my_list リスト:
items = ['hello', 'world']
my_list.extend()
アフターextend() 操作my_list には2つの要素が含まれます.
['hello', 'world']

add ()およびextend ()の違い


間の主な違いappend() and extend() リストに追加できる項目の数です.append() リストに一つの項目だけを追加します.代わりにextend() iterableのすべての項目をリストに追加できます.
リストに多くの項目を追加するappend() , 次の例に示すように、ループを定義できます.
items = ['hello', 'world']
for item in items:
    my_list.append(item)
上記for ループは、アイテムのリストを繰り返して、すべての項目を追加しますmy_list 一人ずつ.基本的に各反復のためにitems to my_list .

と同様です。


正確に.2つの違いがあります.
  • extend() コードを読みやすくします
  • extend() より効率的append() (つまり、リストに項目を追加するのに時間がかかる).
  • なぜ拡張子()はより効率的ですか?


    リストに項目を追加するとき、Pythonインタプリタはリストを展開する必要があります.リストを展開するには、新しいメモリを割り当て、新しく割り当てられたメモリに新しい項目をコピーします.これは両方とも共通ですappend() and extend() 操作.
    リストにいくつかの項目を追加するときに何が起こるかappend() ループで?
    items = ['hello', 'world']
    for item in items:
        my_list.append(item)
    
    上の例では、Pythonインタプリタは項目リストの各要素を繰り返します.それぞれの繰り返しで、my_list . 割り当てられたメモリのサイズは、items .
    最初の反復:メモリを割り当てる'hello' 文字列とコピー'hello' 新たに割り当てられたメモリへの文字列.
    2番目の反復:メモリを割り当てます'world' 文字列とコピー'world' 新たに割り当てられたメモリへの文字列.
    最後にappend() つの割り当て操作と2つのコピー操作を実行します.
    では、何を使うのかを見ましょうextend() すべての項目を追加するmy_list :
    items = ['hello', 'world']
    my_list.extend(items)
    
    この場合、Pythonインタプリタは'hello' and 'world' 文字列my_list .
    それでextend() は1つだけ割り当てられた演算を実行する.

    結論


    リストに多くの項目を追加するappend() ループでは多くの割り当て操作を必要とする.この非効率を緩和するために、Python開発者はオーバーアロケーションを実装し、リストに要素を追加するために必要な割り当て操作の数を減らします.オーバーアロケーションはこのポストの範囲外です.
    割り当て操作は非常に高価である.extend() つのアロケーション操作だけを実行します.したがって、リストに項目を追加するには時間が少なくなります.
    結論として、常に使用する必要がありますextend() リストに項目のセットを追加するには.
    これはすべてこのポストです.あなたがこのポストが好きであるならば、私が新しいポストを発表するとき、通知されるために、私とTwitterに従ってください.😊