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


197

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

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

리버스 listB, 그 후 [[listB]에서 x에 대한 [listA.insert (pos, x)]
John Mee


1
@JohnMee 무슨 뜻 listA.insert(pos, x) for x in listB[::-1]인가요?
wizzwizz4

답변:


360

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

3
그 자리에 있거나 새로운 인스턴스를 산출합니까?
Daniel Möller

7
x.extend(y), x+y새 목록을 반환합니다. 그리고 x += y여기에 언급되지 않은은 확장과 유사합니다.
wim

85

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

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]

34
특정 삽입 지점으로 '확장'하려는 경우 목록 슬라이싱 구문을 사용할 수 있습니다 ( stackoverflow.com/a/7376026/1075152 참조 )
florisla

5
@florisla의 의견은 허용되는 답변이어야합니다. 끝이 아닌 임의의 위치에 다른 목록에 목록을 삽입하는 유일한 방법입니다.
weaver

1
@weaver 그것을 수행 하는 유일한 솔루션이지만 (특정 색인으로 확장) 원래 질문은 아닙니다.
florisla

@florisla 저것은 pedantry이다.
위버


3

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

x += y

하나 언급하기 때문에, 허용 대답에 코멘트를해야 x + y하고 x += y단지 같은 일을하지만 장소입니다.
HTNW

나는 그것을 할 평판이 없지만 다른 사람이 할 수 있다면!
user3707850

2

리스트 (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]

0

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.