dict에 추가하면 첫 번째 목록이 변경되는 이유는 무엇입니까?

마틴

각 키가 평가판 식별 이름이고 관련 값이 정수 (예 : { 'a': [1,3,4,2,1], 'b')로 여러 요소가 포함 된 목록 인 사전을 만들려고합니다. : [34,5,3,23]} 나는 더미 데이터로 시작하고 for 루프와 append ()를 사용할 때 원래 데이터를 직접 변경한다고 생각했습니다. 내 사전에 추가하려고 할 때 이런 일이 발생한다고 결정했지만 이유를 이해하지 못합니다.

내 더미 값과 코드는 다음과 같습니다.

plane1 = [1,1,1]
plane2 = [2,2,2]
plane3 = [3,3,3]
plane4 = [4,4,4]
zList = [plane1,plane2,plane3,plane4]
trial_list = ['a', 'b', 'c']

roi_dict = {}

for trial in trial_list:
    print(trial)
    for z in zList:
        if trial not in roi_dict.keys():
            roi_dict[str(trial)] = z
        else:
            roi_dict[str(trial)].append(z)

최종 roi_dict는

{'a': [1, 1, 1, [2, 2, 2], [3, 3, 3], [4, 4, 4], [2, 2, 2], [3, 3, 3], [4, 4, 4], [2, 2, 2], [3, 3, 3], [4, 4, 4]], 'b': [1, 1, 1, [2, 2, 2], [3, 3, 3], [4, 4, 4], [2, 2, 2], [3, 3, 3], [4, 4, 4], [2, 2, 2], [3, 3, 3], [4, 4, 4]], 'c': [1, 1, 1, [2, 2, 2], [3, 3, 3], [4, 4, 4], [2, 2, 2], [3, 3, 3], [4, 4, 4], [2, 2, 2], [3, 3, 3], [4, 4, 4]]}

print(z_list[0])
[1, 1, 1, [2, 2, 2], [3, 3, 3], [4, 4, 4], [2, 2, 2], [3, 3, 3], [4, 4, 4], [2, 2, 2], [3, 3, 3], [4, 4, 4]]

A) 키의 처음 세 요소가 개별 숫자이고 다음 요소는 목록 인 이유를 이해할 수 없습니다. B) 각 키에 대해 값이 [1, 1, 1], [2, 2, 2], [3, 3, 3], [4, 4, 4]가 아닌 이유. C) 이것이 func_list의 첫 번째 값을 변경하는 이유.

이것을 여러 질문으로 나누어야한다면 기쁠 것 같지만 모두 같은 문제에서 비롯된 것 같습니다.

감사합니다!

패트릭 아트 너

zList목록의 목록입니다. 당신은

 if trial not in roi_dict.keys():
    roi_dict[str(trial)] = z           # z being intem from zList
else:
    roi_dict[str(trial)].append(z)

사용자가 설정 한 의미 roi_dict[str(trial)]z.

그런 다음 추가 roi_dict[str(trial)]-목록은 참조에 의해 사용되므로 본질적으로 roi_dict[str(trial)]== z이고 추가 반복에서 수정할 zList[0]때 수정합니다 roi_dict[str(trial)].append(z).

코드를 다음으로 변경하십시오.

import copy

 if trial not in roi_dict.keys():
    roi_dict[str(trial)] = [copy.deepcopy(z)]
 else:
    roi_dict[str(trial)].append(z)

두 가지 문제를 모두 해결합니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

dict 목록의 첫 번째 요소에 항목을 추가하고 목록의 다른 dict도 수정하는 이유는 무엇입니까?

분류에서Dev

이중 연결 목록에 노드를 추가하면 첫 번째 노드를 제외한 모든 노드가 삭제되는 이유는 무엇입니까?

분류에서Dev

파이썬에서 목록의 첫 번째 요소를 변경하지 않는 방법은 무엇입니까?

분류에서Dev

첫 번째 foreach 루프 후에 변수 데이터가 삭제되는 이유는 무엇입니까?

분류에서Dev

내 for 루프가 첫 번째 항목에서만 실행되는 이유는 무엇입니까?

분류에서Dev

경로 요구 사항이 두 번째 경로가 아닌 첫 번째 경로에 적용되는 이유는 무엇입니까?

분류에서Dev

이 루프가 목록의 첫 번째 항목을 지나치지 않는 이유는 무엇입니까?

분류에서Dev

두 번째 for 루프가 Python에서 첫 번째 루프를 덮어 쓰는 이유는 무엇입니까?

분류에서Dev

반응 하위 구성 요소 목록의 첫 번째 구성 요소에 CSS 모듈 스타일이 적용되지 않는 이유는 무엇입니까?

분류에서Dev

누적 시그 모이 드 : 두 번째 계층을 훈련하면 첫 번째 계층이 변경되는 이유는 무엇입니까?

분류에서Dev

이 텍스트 목록에서 첫 번째 행을 가져 오는 방법은 무엇입니까?

분류에서Dev

내 if 문이 첫 번째 값에 고정되는 이유는 무엇입니까?

분류에서Dev

변수가 jQuery에서 for 루프의 첫 번째 값만 전달하는 이유는 무엇입니까?

분류에서Dev

내 목록보기가 첫 번째 확인란 만 감지하는 이유는 무엇입니까?

분류에서Dev

내 목록 함수가 배열의 첫 번째 값만 출력하는 이유는 무엇입니까?

분류에서Dev

이 배열의 첫 번째 요소가 PHP에 표시되지 않는 이유는 무엇입니까?

분류에서Dev

두 번째 목록을 첫 번째 목록과 결합하여 파이썬에서 일부 형식을 지정하는 방법은 무엇입니까?

분류에서Dev

프로그램이 순환 링크 목록의 첫 번째 요소 뒤에 노드를 삽입하는 이유는 무엇입니까?

분류에서Dev

React Native Navigation 리스너가 첫 번째 시도에서 트리거되는 이유는 무엇입니까?

분류에서Dev

for 루프가 첫 번째 단계에서 계속되지 않는 이유는 무엇입니까?

분류에서Dev

호출에 표시되도록 첫 번째 매개 변수의 레이블을 복제해야하는 이유는 무엇입니까?

분류에서Dev

전체 부분이 동일한 숫자를 제거하고 목록에서 첫 번째 항목을 유지하는 방법은 무엇입니까?

분류에서Dev

내 첫 번째 스레드 메시지 앞에 REST API를 통한 첫 번째 봇 메시지가 표시되는 이유는 무엇입니까?

분류에서Dev

첫 번째 클릭 이벤트에서 전환이 작동하지 않는 이유는 무엇입니까?

분류에서Dev

루프에서이 PHP 할당이 항상 첫 번째 값을 인쇄하는 이유는 무엇입니까?

분류에서Dev

`zip`이 첫 번째 반복자에서 하나 이상의 요소를 먹는 이유는 무엇입니까?

분류에서Dev

이것이 첫 번째 div에서만 작동하는 이유는 무엇입니까?

분류에서Dev

첫 번째 대체가 일치하지 않는 이유는 무엇입니까?

분류에서Dev

첫 번째 \ t가 작동하지 않는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    dict 목록의 첫 번째 요소에 항목을 추가하고 목록의 다른 dict도 수정하는 이유는 무엇입니까?

  2. 2

    이중 연결 목록에 노드를 추가하면 첫 번째 노드를 제외한 모든 노드가 삭제되는 이유는 무엇입니까?

  3. 3

    파이썬에서 목록의 첫 번째 요소를 변경하지 않는 방법은 무엇입니까?

  4. 4

    첫 번째 foreach 루프 후에 변수 데이터가 삭제되는 이유는 무엇입니까?

  5. 5

    내 for 루프가 첫 번째 항목에서만 실행되는 이유는 무엇입니까?

  6. 6

    경로 요구 사항이 두 번째 경로가 아닌 첫 번째 경로에 적용되는 이유는 무엇입니까?

  7. 7

    이 루프가 목록의 첫 번째 항목을 지나치지 않는 이유는 무엇입니까?

  8. 8

    두 번째 for 루프가 Python에서 첫 번째 루프를 덮어 쓰는 이유는 무엇입니까?

  9. 9

    반응 하위 구성 요소 목록의 첫 번째 구성 요소에 CSS 모듈 스타일이 적용되지 않는 이유는 무엇입니까?

  10. 10

    누적 시그 모이 드 : 두 번째 계층을 훈련하면 첫 번째 계층이 변경되는 이유는 무엇입니까?

  11. 11

    이 텍스트 목록에서 첫 번째 행을 가져 오는 방법은 무엇입니까?

  12. 12

    내 if 문이 첫 번째 값에 고정되는 이유는 무엇입니까?

  13. 13

    변수가 jQuery에서 for 루프의 첫 번째 값만 전달하는 이유는 무엇입니까?

  14. 14

    내 목록보기가 첫 번째 확인란 만 감지하는 이유는 무엇입니까?

  15. 15

    내 목록 함수가 배열의 첫 번째 값만 출력하는 이유는 무엇입니까?

  16. 16

    이 배열의 첫 번째 요소가 PHP에 표시되지 않는 이유는 무엇입니까?

  17. 17

    두 번째 목록을 첫 번째 목록과 결합하여 파이썬에서 일부 형식을 지정하는 방법은 무엇입니까?

  18. 18

    프로그램이 순환 링크 목록의 첫 번째 요소 뒤에 노드를 삽입하는 이유는 무엇입니까?

  19. 19

    React Native Navigation 리스너가 첫 번째 시도에서 트리거되는 이유는 무엇입니까?

  20. 20

    for 루프가 첫 번째 단계에서 계속되지 않는 이유는 무엇입니까?

  21. 21

    호출에 표시되도록 첫 번째 매개 변수의 레이블을 복제해야하는 이유는 무엇입니까?

  22. 22

    전체 부분이 동일한 숫자를 제거하고 목록에서 첫 번째 항목을 유지하는 방법은 무엇입니까?

  23. 23

    내 첫 번째 스레드 메시지 앞에 REST API를 통한 첫 번째 봇 메시지가 표시되는 이유는 무엇입니까?

  24. 24

    첫 번째 클릭 이벤트에서 전환이 작동하지 않는 이유는 무엇입니까?

  25. 25

    루프에서이 PHP 할당이 항상 첫 번째 값을 인쇄하는 이유는 무엇입니까?

  26. 26

    `zip`이 첫 번째 반복자에서 하나 이상의 요소를 먹는 이유는 무엇입니까?

  27. 27

    이것이 첫 번째 div에서만 작동하는 이유는 무엇입니까?

  28. 28

    첫 번째 대체가 일치하지 않는 이유는 무엇입니까?

  29. 29

    첫 번째 \ t가 작동하지 않는 이유는 무엇입니까?

뜨겁다태그

보관