파이썬이 여기에 목록을 복사하는 이유는 무엇입니까?

존 모리슨

나는 "3D"배열에서 정육면체를 나타내야하는 함수를 가지고 있지만 한 레이어는 중간에 정사각형을 가지고 있습니다. IE

def cube(n):
    list1 = []
    list2 = []
    list3 = []


    for a in range(n+2):
        list3.append(str('c'))
    for b in range(n+2):
        list2.append(list(list3))
    for c in range(n+2):
        list1.append(list(list2))


    for d in range(1,n+1):
        for e in range(1,n+1):
            list1[0][d][e]='h'
    return list1

pprint.pprint(cube(2))

>>>

[[['c', 'c', 'c', 'c'],
['c', 'h', 'h', 'c'],
['c', 'h', 'h', 'c'],
['c', 'c', 'c', 'c']],

[['c', 'c', 'c', 'c'],
['c', 'h', 'h', 'c'],
['c', 'h', 'h', 'c'],
['c', 'c', 'c', 'c']],

[['c', 'c', 'c', 'c'],
['c', 'h', 'h', 'c'],
['c', 'h', 'h', 'c'],
['c', 'c', 'c', 'c']],

[['c', 'c', 'c', 'c'],
['c', 'h', 'h', 'c'],
['c', 'h', 'h', 'c'],
['c', 'c', 'c', 'c']]]

그러나 나는 이것을 원한다 :

>>>

[[['c', 'c', 'c', 'c'],
['c', 'h', 'h', 'c'],
['c', 'h', 'h', 'c'],
['c', 'c', 'c', 'c']],

[['c', 'c', 'c', 'c'],
['c', 'c', 'c', 'c'],
['c', 'c', 'c', 'c'],
['c', 'c', 'c', 'c']],

[['c', 'c', 'c', 'c'],
['c', 'c', 'c', 'c'],
['c', 'c', 'c', 'c'],
['c', 'c', 'c', 'c']],

[['c', 'c', 'c', 'c'],
['c', 'c', 'c', 'c'],
['c', 'c', 'c', 'c'],
['c', 'c', 'c', 'c']]]

첫 번째 레이어에서만 h. 파이썬이 왜 이런 일을합니까?

팀 피터스

원하는 것을 얻기위한 최소한의 변경 사항이 있습니다. 먼저

from copy import deepcopy

그런 다음 다음을 교체하십시오.

list1.append(list(list2))

와:

list1.append(deepcopy(list2))

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 파이썬 이해가 사용자 입력을 여러 번 반복하는 이유는 무엇입니까?

분류에서Dev

목록을 반복하는 것이 파이썬에서 반복을 반복하는 것보다 훨씬 느린 이유는 무엇입니까?

분류에서Dev

목록을 반복하는 것이 파이썬에서 반복을 반복하는 것보다 훨씬 느린 이유는 무엇입니까?

분류에서Dev

파이썬에서 다른 객체로 목록을 초기화 할 수없는 이유는 무엇입니까?

분류에서Dev

파이썬 목록에서 <some-name>을 사용할 수없는 이유는 무엇입니까?

분류에서Dev

파이썬에서 이런 식으로 목록을 증가시킬 수없는 이유는 무엇입니까?

분류에서Dev

파이썬을 사용하여 목록 목록을 Excel로 작성하는 방법은 무엇입니까?

분류에서Dev

파이썬이 여기에 여러 값을 인쇄하는 이유는 무엇입니까?

분류에서Dev

파이썬에서 동일한 목록에 사전 목록을 추가하는 방법은 무엇입니까?

분류에서Dev

함수에 대한 기본 인수로 빈 목록이있을 때 파이썬이이 동작을 표시하는 이유는 무엇입니까?

분류에서Dev

파이썬 목록을 반복하는 동안 요소를 수정할 때 이러한 종류의 동작 뒤에있는 이유는 무엇입니까

분류에서Dev

이 특정 경우에이 파이썬 목록이 비어있는 이유는 무엇입니까?

분류에서Dev

이 xpath가 파이썬에서 lxml을 사용하여 실패하는 이유는 무엇입니까?

분류에서Dev

분할 기능을 사용하여 파이썬에서 단일 목록의 하위 목록을 분할하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 Tkinter를 사용하여 레이블의 목록을 반복하는 방법은 무엇입니까?

분류에서Dev

파이썬 로깅을 사용하여 파일에 기록하는 방법은 무엇입니까?

분류에서Dev

파이썬의 목록 작업이 함수 범위 밖에서 작동하는 이유는 무엇입니까?

분류에서Dev

목록에 복사본 요소가 포함되어 있는지 확인하기 위해 목록 복사본을 만드는 이유는 무엇입니까?

분류에서Dev

이 파이썬 목록에 중복 항목이 있는지 여부를 찾는 방법은 무엇입니까?

분류에서Dev

파이썬에서 중첩 목록을 여러 목록으로 나누는 방법은 무엇입니까?

분류에서Dev

파이썬 [중복 포함]을 사용하여 목록에서 시퀀스의 길이를 찾는 방법은 무엇입니까?

분류에서Dev

파이썬 목록에서 중복 조합 튜플을 제거하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 두 목록을 반복적으로 비교하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 '+'연산자를 사용하여 목록을 str과 연결할 수없는 이유는 무엇입니까?

분류에서Dev

파이썬의 목록에 저장되는 목록 집합을 압축하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 텍스트 파일의 목록을 사용하는 방법은 무엇입니까?

분류에서Dev

탐색에 목록을 사용하는 이유는 무엇입니까?

분류에서Dev

파이썬에서 튜플 목록 목록을 평면 매핑하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 목록을 정의하는이 두 가지 방법의 차이점은 무엇입니까?

Related 관련 기사

  1. 1

    이 파이썬 이해가 사용자 입력을 여러 번 반복하는 이유는 무엇입니까?

  2. 2

    목록을 반복하는 것이 파이썬에서 반복을 반복하는 것보다 훨씬 느린 이유는 무엇입니까?

  3. 3

    목록을 반복하는 것이 파이썬에서 반복을 반복하는 것보다 훨씬 느린 이유는 무엇입니까?

  4. 4

    파이썬에서 다른 객체로 목록을 초기화 할 수없는 이유는 무엇입니까?

  5. 5

    파이썬 목록에서 <some-name>을 사용할 수없는 이유는 무엇입니까?

  6. 6

    파이썬에서 이런 식으로 목록을 증가시킬 수없는 이유는 무엇입니까?

  7. 7

    파이썬을 사용하여 목록 목록을 Excel로 작성하는 방법은 무엇입니까?

  8. 8

    파이썬이 여기에 여러 값을 인쇄하는 이유는 무엇입니까?

  9. 9

    파이썬에서 동일한 목록에 사전 목록을 추가하는 방법은 무엇입니까?

  10. 10

    함수에 대한 기본 인수로 빈 목록이있을 때 파이썬이이 동작을 표시하는 이유는 무엇입니까?

  11. 11

    파이썬 목록을 반복하는 동안 요소를 수정할 때 이러한 종류의 동작 뒤에있는 이유는 무엇입니까

  12. 12

    이 특정 경우에이 파이썬 목록이 비어있는 이유는 무엇입니까?

  13. 13

    이 xpath가 파이썬에서 lxml을 사용하여 실패하는 이유는 무엇입니까?

  14. 14

    분할 기능을 사용하여 파이썬에서 단일 목록의 하위 목록을 분할하는 방법은 무엇입니까?

  15. 15

    파이썬에서 Tkinter를 사용하여 레이블의 목록을 반복하는 방법은 무엇입니까?

  16. 16

    파이썬 로깅을 사용하여 파일에 기록하는 방법은 무엇입니까?

  17. 17

    파이썬의 목록 작업이 함수 범위 밖에서 작동하는 이유는 무엇입니까?

  18. 18

    목록에 복사본 요소가 포함되어 있는지 확인하기 위해 목록 복사본을 만드는 이유는 무엇입니까?

  19. 19

    이 파이썬 목록에 중복 항목이 있는지 여부를 찾는 방법은 무엇입니까?

  20. 20

    파이썬에서 중첩 목록을 여러 목록으로 나누는 방법은 무엇입니까?

  21. 21

    파이썬 [중복 포함]을 사용하여 목록에서 시퀀스의 길이를 찾는 방법은 무엇입니까?

  22. 22

    파이썬 목록에서 중복 조합 튜플을 제거하는 방법은 무엇입니까?

  23. 23

    파이썬에서 두 목록을 반복적으로 비교하는 방법은 무엇입니까?

  24. 24

    파이썬에서 '+'연산자를 사용하여 목록을 str과 연결할 수없는 이유는 무엇입니까?

  25. 25

    파이썬의 목록에 저장되는 목록 집합을 압축하는 방법은 무엇입니까?

  26. 26

    파이썬에서 텍스트 파일의 목록을 사용하는 방법은 무엇입니까?

  27. 27

    탐색에 목록을 사용하는 이유는 무엇입니까?

  28. 28

    파이썬에서 튜플 목록 목록을 평면 매핑하는 방법은 무엇입니까?

  29. 29

    파이썬에서 목록을 정의하는이 두 가지 방법의 차이점은 무엇입니까?

뜨겁다태그

보관