[python] 파이썬에서 하나의 목록을 다른 목록에 삽입하는 구문은 무엇입니까?

두 가지 목록이 제공됩니다.

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

구문은 무엇입니까?

  1. 삽입 xy있도록 y지금처럼 보인다 [1, 2, 3, [4, 5, 6]]?
  2. 의 모든 항목을 삽입 xy있도록 y지금처럼 보인다 [1, 2, 3, 4, 5, 6]?


답변

당신은 의미 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] 


답변

이 질문은 정확히 당신이 달성하고자하는 것을 명확하게하지 않습니다.

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]]

인수로 전달한 목록의 항목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]


답변

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


답변

당신은 또한 할 수 있습니다 …

x += y


답변

리스트 (list2)의 요소를 다른리스트 (list)의 끝에 추가하려면 list extend 메소드를 사용할 수 있습니다

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

또는 두 목록을 연결하려면 + 기호를 사용할 수 있습니다

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


답변

우리가 방금 수행 x.append(y)하면 y는 x로 참조되어 y에 대한 모든 변경 사항이 추가 된 x에도 영향을 미칩니다. 따라서 요소 만 삽입해야하는 경우 다음을 수행해야합니다.

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


답변