web-dev-qa-db-ja.com

1つのリストをpythonの別のリストに挿入するための構文は何ですか?

2つのリストがあります:

x = [1,2,3]
y = [4,5,6]

構文は次のとおりです。

  1. xyに挿入して、y[1, 2, 3, [4, 5, 6]]?のようになるようにします。
  2. xのすべての項目をyに挿入し、y[1, 2, 3, 4, 5, 6]のようになるようにします。
170
Compuser7

appendを意味しますか?

>>> x = [1,2,3]
>>> y = [4,5,6]
>>> x.append(y)
>>> x
[1, 2, 3, [4, 5, 6]]

それともマージ?

>>> x = [1,2,3]
>>> y = [4,5,6]
>>> x + y
[1, 2, 3, 4, 5, 6]
>>> x.extend(y)
>>> x
[1, 2, 3, 4, 5, 6] 
331

質問はあなたが達成したいことを正確には明らかにしません。

Listには、引数をリストに追加するappendメソッドがあります。

>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.append(list_two)
>>> list_one
[1, 2, 3, [4, 5, 6]]

引数として渡すリストにitemsを追加するextendメソッドもあります。

>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.extend(list_two)
>>> list_one
[1, 2, 3, 4, 5, 6]

そしてもちろん、insertと同じように動作するが挿入ポイントを指定できるappendメソッドがあります。

>>> list_one.insert(2, list_two)
>>> list_one
[1, 2, [4, 5, 6], 3, 4, 5, 6]

特定の挿入位置でリストを拡張するには、リストスライスを使用できます(ありがとう、@ florisla)。

>>> l = [1, 2, 3, 4, 5]
>>> l[2:2] = ['a', 'b', 'c']
>>> l
[1, 2, 'a', 'b', 'c', 3, 4, 5]

リストスライスは、リスト内のエントリの範囲を別のリストのエントリの範囲で置き換えることができるため、非常に柔軟です。

>>> l = [1, 2, 3, 4, 5]
>>> l[2:4] = ['a', 'b', 'c'][1:3]
>>> l
[1, 2, 'b', 'c', 5]
63
Sergey
foo = [1, 2, 3]
bar = [4, 5, 6]

foo.append(bar) --> [1, 2, 3, [4, 5, 6]]
foo.extend(bar) --> [1, 2, 3, 4, 5, 6]

http://docs.python.org/tutorial/datastructures.html

30
Coding District

リスト(list2)の要素を他のリスト(list)の最後に追加したい場合は、list extendメソッドを使うことができます。

list = [1, 2, 3]
list2 = [4, 5, 6]
list.extend(list2)
print list
[1, 2, 3, 4, 5, 6]

2つのリストを連結したい場合は、+ signを使用できます。

list3 = list + list2
print list3
[1, 2, 3, 4, 5, 6]
2
squal

あなたもすることができます...

x += y
2
user3707850

x.append(y)を実行しただけでは、yがxに参照されるため、yに対する変更は追加されたxにも影響します。したがって、要素だけを挿入する必要がある場合は、次のようにします。

x = [1,2,3] y = [4,5,6] x.append(y[:])

0
Raj Stha