Python Listのappendとextend
5007 ワード
最近、Scrapyのソースコードを読んでいると、listメソッドappendとextendの使用について見ました.初めて見ると,まだ少しぼんやりしている.では、資料をよく探して分析してみましょう.
stackoverflowの回答は次のとおりです.
append:末尾にオブジェクトを追加(Appends object at end) appendとextendはいずれも1つのパラメータ しか受信できない. appendのパラメータタイプは任意で、上述の単一要素のようにlist乃至メタグループは である. extendのパラメータは、単一の要素であってもよいし、反復器の属性を持つlist、メタグループ を含んでもよい. appendはオブジェクトを1つの全体としてlistの後ろに追加し、extendはlistまたはメタグループの要素をリストに1つずつ追加し、すなわちappendがlistまたはメタグループを追加すると、最後の要素自体がlistまたはメタグループであり、extendがlistまたはメタグループを拡張するとlistの要素が1つずつ追加され、最後に得られたのは長くなったリストです.
stackoverflowの回答は次のとおりです.
append:末尾にオブジェクトを追加(Appends object at end)
C:\Users\sniper.geek>python2
Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> x =[1,2,3]
>>> x.append([4,5])
>>> print x
[1, 2, 3, [4, 5]]
>>>
appendに対して、1つの要素だけ追加してもいいですか?試してみる:C:\Users\sniper.geek>python2
Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> x=[1,2,3]
>>> x.append(5)
>>> print x
[1, 2, 3, 5]
>>>
では、メタグループを追加できますか?続行:C:\Users\sniper.geek>python2
Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> x=[1,2,3]
>>> x.append(5)
>>> print x
[1, 2, 3, 5]
>>> x.append((6,7,8))
>>> print x
[1, 2, 3, 5, (6, 7, 8)]
>>>
以上よりappendはlistを1つ追加したり,メタグループを1つ追加したり,個別の要素を追加したりすることができる.
extend:反復器から要素を追加することでシーケンスを拡張する(extends list by appending elements from the iterable)C:\Users\sniper.geek>python2
Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> x=[1,2,3]
>>> x.extend([4,5])
>>> print x
[1, 2, 3, 4, 5]
>>>
では、extendのパラメータはlistまたはメタグループでよいのでしょうか.試してみる:C:\Users\sniper.geek>python2
Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> x=[1,2,3]
>>> x.extend([4,5,6])
>>> print x
[1, 2, 3, 4, 5, 6]
>>> x.extend((8,9,10))
>>> print x
[1, 2, 3, 4, 5, 6, 8, 9, 10]
>>>
以上より,extendのパラメータは単一要素に加えてlistまたはメタグループであってもよいことが分かった.
まとめ: