2012-11-21 2 views
2

목록에 항목을 복사하려고하는데 링크가 항상 추가됩니다. Python이 목록에 항목을 복사 할 수 없습니다.

내가 뭘하려 :

1 :

list1 = [] 
list2 = [1] 
list1.append(list2) 

2.

list1 = [] 
list2 = [1] 
list1 += [list2] 

3.

list1 = [] 
list2 = [1] 
list1 = list1 + [list2] 

그 후, 목록 1 항상을리스트 2를 수정하는 경우 변화한다.

파이썬 버전 : 단지 참조를 추가하지 않고 내가 목록에 추가하려면 어떻게

sys.version_info (= 0 시리얼, 2 = 메이저, 마이너 = 7, 마이크로 = 3, releaselevel = '마지막').

+0

시도가'대신 sys.version'. –

+0

변수 이름으로'l1'과'l2'를 사용하지 않는 것이 좋습니다. 'l'은'1'과 너무 흡사하다. 이 사실은 내가 당신의 게시물을 읽을 때 나를 때려 눕혔습니다. – inspectorG4dget

+0

고마워, 내가 편집 할게. –

답변

4

답변은 예상 결과에 따라 다릅니다. 에,

list1 += [list2[:]]

  • 경우 : 단일 요소로 전체 목록을 추가 할 찾고 있다면

    1. , 당신은 (얕은) 사본, 예를 만들기 위해 list2[:]를 사용할 필요가 다른 한편으로, 당신은 당신이

      ,832을 찾고, list1list2요소를 추가 할 찾고 10

  • +0

    +1 답변. 'list.extend'는 훨씬 빠릅니다. 그래도 – inspectorG4dget

    0

    이것은, 가장 좋은 방법은되지 않을 수도 있습니다,하지만 그것을 작동 : 자세한 내용은 설명서를 참조하십시오

    list1 = list1 + list2 
    
    관련 문제