pythonリストappendとextendの違いも話します


appendとextendの2つの方法について、ネット上の多くの人は以下のように話しています.
append()メソッドは、リストの末尾に新しい要素を追加します.1つのパラメータのみを受け入れます.
extend()メソッドは、パラメータとして1つのリストのみを受け入れ、そのパラメータの各要素を元のリストに追加します.
しかし,extendについてはパラメータとして1つのリストしか受け入れていないという説に疑問を抱いている.栗を挙げます.
extend
>>>a= [1,2,3,4]
>>> a.extend(['a','b'])
>>> a
[1, 2, 3, 4, 'a', 'b']
append
>>> a.append(['a','b'])
>>> a
[1, 2, 3, 4, 'a', 'b', ['a', 'b']]

OK、これでリストを追加しても大丈夫です.メタグループに変えてもいいですか.
append
>>> a.append((1,2,3))
>>> a
[1, 2, 3, 4, 'a', 'b', ['a', 'b'], (1, 2, 3)]
>>> a.extend((4,5,6))
>>> a
[1, 2, 3, 4, 'a', 'b', ['a', 'b'], (1, 2, 3), 4, 5, 6]

依然として可能で、メタグループもextendに受け入れられて、listに追加することに成功して、辞書を交換しますか?
extend
>>> a.extend({1:'a',2:'b'})
>>> a
[1, 2, 3, 4, 'a', 'b', ['a', 'b'], (1, 2, 3), 4, 5, 6, 1, 2]
append
>>> a.append({7:'c',5:'d'})
>>> a
[1, 2, 3, 4, 'a', 'b', ['a', 'b'], (1, 2, 3), 4, 5, 6, 1, 2, {5: 'd', 7: 'c'}]

ここでは、extend方式でリストパラメータを辞書に拡張する場合、リストに追加されるのはkeyだけで、valueは追加されていないことがわかります.しかしappendという方法で拡張すると、辞書全体を1つの値としてリストに追加します.
OK、以上は可変オブジェクトですが、文字列に変えたら?
extend
>>> a.extend('123456')
>>> a
[1, 2, 3, 4, 'a', 'b', ['a', 'b'], (1, 2, 3), 4, 5, 6, 1, 2, {5: 'd', 7: 'c'}, '1', '2', '3', '4', '5', '6']
append
>>> a.append('123456')
>>> a
[1, 2, 3, 4, 'a', 'b', ['a', 'b'], (1, 2, 3), 4, 5, 6, 1, 2, {5: 'd', 7: 'c'}, '1', '2', '3', '4', '5', '6', '123456']

いいですよ.
まとめ:
1、append、extendともに様々なタイプのデータを受け入れることができますが、extendパラメータが辞書の場合、keyはリストに追加されます.
2、appendとextendはいずれも1つのパラメータしか受け入れない
3、appendは1つのパラメータを受け入れて、リストに追加して末尾に1つの要素だけを追加して、つまりあなたのパラメータは何で、リストの中で何に追加します.
4、extendは1つのパラメータを受け入れ、リストに追加するとパラメータの各値をリストに追加する(辞書例外)
追加help情報
Help on built-in function extend:
extend(...) method of builtins.list instance
L.extend(iterable) -> None -- extend list by appending elements from the iterable
extendのパラメータがリストでなければならないとは言っていません.
反復可能な要素から延長リストを追加
以上は个人の実験の结果で、もし大神がもっと良い解釈があるならば、どうぞ多く解答して、ありがとうございます!