Python 목록에있는 변경 가능한 개체의 ID

Sidhant

[Value] * Count목록을 초기화하기 위해 Python 에서 표기법을 사용했습니다 . 예를 들어, [False] * 3목록이 생성됩니다 [False, False False]. 목록 목록을 초기화하는 데 동일한 표기법을 사용해 보았습니다.

>>>a = [[0] * 2] * 3
>>>print a
[[0, 0], [0, 0], [0, 0]]
>>>a[0][1] = 23
>>>print a
[[0, 23], [0, 23], [0, 23]]
>>>id(a[0])
139978350226680
>>>id(a[1])
139978350226680
>>>id(a[2])
139978350226680

보시다시피,의 요소는 세 개의 다른 목록을 참조하는 대신 단일 목록을 세 번 참조합니다. 1. 왜 이런 일이 발생합니까? 2. 목록 목록을 초기화하는 올바른 방법은 무엇입니까?

이전 답변에서 동일한 동작이 지적되었습니다. https://stackoverflow.com/a/13382804/4716199

빌렘 반 온셈

즉,의 행동이다 *는 않습니다 목록에 운영자 복사본을 만들지 만, 복사 참조 . 일반적으로 복사 방법을 정의하지 않았기 때문에 파이썬은 모든 객체가 가지고있는 유일한 것이기 때문에 참조 만 복사 할 수 있습니다.

새 목록을 구성하려는 경우 목록 이해력을 사용할 수 있습니다.

a = [[0] * 2 for _ in range(3)]

일반적으로 목록 에 변경 가능한 객체가 포함되어 있으면 사용하는 것은 좋지 않습니다 .*

변경 불가능한 객체의 경우 boolstr이것은 객체 자체 에서 작업하지 않고 결과 배열에서 작업하기 때문에 작동합니다 . 이 예에서는 체인 인덱싱을 사용 했으므로 내부 목록을 수정합니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ID가있는 개체 목록에 대한 목록 대 Dict

분류에서Dev

Python : 고유 한 ID 값이있는 목록의 개체 필터링

분류에서Dev

Python의 함수 및 변경 가능한 목록

분류에서Dev

개체의 변수가 변경 될 때 목록에있는 개체의 인덱스

분류에서Dev

Python-변경 가능한 객체를 대체하는 함수

분류에서Dev

변경 불가능한 기본 매개 변수 값에 대한 Python 동작

분류에서Dev

목록의 가능한 한 번만 변경할 수있는 목록을 만듭니다.

분류에서Dev

중첩 된 개체 및 빌더가있는 변경 불가능한 값 개체

분류에서Dev

Python, 파일 이름의 변경 가능한 부분이있는 루프

분류에서Dev

변경 가능한 목록 자바 불변의 변환

분류에서Dev

2 개의 목록 / 변수가있는 Python "for 루프"

분류에서Dev

개체가 이미 목록에 있는지 확인 (Python)

분류에서Dev

하나의 요소가있는 목록을 세 개의 요소가있는 목록으로 변환 -Python

분류에서Dev

Java의 변경 불가능한 맵 내부에 값 필드로 변경 불가능한 목록을 가질 수 있습니까?

분류에서Dev

Python : 목록의 가능성을 얻고 루프 수 변경

분류에서Dev

Eclipse의 변경 가능한 Java 변수에 대한 경고

분류에서Dev

데이터가 목록에있는 경우 열 추가-Python Pandas의 DataFrame?

분류에서Dev

MongoDB : 목록에 'Id'가있는 컬렉션의 개체 만 업데이트합니다.

분류에서Dev

Python Paramiko에서 전체 경로가있는 디렉토리의 파일 목록 검색

분류에서Dev

다른 값이 목록에있는 경우 한 열의 값 변경 [R]

분류에서Dev

Kotlin : 공개 getter는 변경 불가능한 목록을 반환하지만 비공개 getter는 변경 가능한 목록을 반환해야합니다.

분류에서Dev

메서드에서 변경 가능한 객체의 변경 불가능한 복사본 반환

분류에서Dev

변경 가능한 객체가있는 자동 속성

분류에서Dev

객체 키가있는 변경 가능한 맵

분류에서Dev

다른 파일의 Python 목록에있는 문자열 인 경우 개체 제거

분류에서Dev

주어진 범위의 변경 가능한 목록을 만드는 더 좋은 방법이 있습니까?

분류에서Dev

제한이있는 개인 ID의 반복 가능한 생성

분류에서Dev

2 개의 변수가있는 목록 상자에 개체를로드했습니다. 목록 상자에는 이름 만 표시됩니다.

분류에서Dev

변경 불가능한 개체의 값을 대체 할 새 개체 만들기

Related 관련 기사

  1. 1

    ID가있는 개체 목록에 대한 목록 대 Dict

  2. 2

    Python : 고유 한 ID 값이있는 목록의 개체 필터링

  3. 3

    Python의 함수 및 변경 가능한 목록

  4. 4

    개체의 변수가 변경 될 때 목록에있는 개체의 인덱스

  5. 5

    Python-변경 가능한 객체를 대체하는 함수

  6. 6

    변경 불가능한 기본 매개 변수 값에 대한 Python 동작

  7. 7

    목록의 가능한 한 번만 변경할 수있는 목록을 만듭니다.

  8. 8

    중첩 된 개체 및 빌더가있는 변경 불가능한 값 개체

  9. 9

    Python, 파일 이름의 변경 가능한 부분이있는 루프

  10. 10

    변경 가능한 목록 자바 불변의 변환

  11. 11

    2 개의 목록 / 변수가있는 Python "for 루프"

  12. 12

    개체가 이미 목록에 있는지 확인 (Python)

  13. 13

    하나의 요소가있는 목록을 세 개의 요소가있는 목록으로 변환 -Python

  14. 14

    Java의 변경 불가능한 맵 내부에 값 필드로 변경 불가능한 목록을 가질 수 있습니까?

  15. 15

    Python : 목록의 가능성을 얻고 루프 수 변경

  16. 16

    Eclipse의 변경 가능한 Java 변수에 대한 경고

  17. 17

    데이터가 목록에있는 경우 열 추가-Python Pandas의 DataFrame?

  18. 18

    MongoDB : 목록에 'Id'가있는 컬렉션의 개체 만 업데이트합니다.

  19. 19

    Python Paramiko에서 전체 경로가있는 디렉토리의 파일 목록 검색

  20. 20

    다른 값이 목록에있는 경우 한 열의 값 변경 [R]

  21. 21

    Kotlin : 공개 getter는 변경 불가능한 목록을 반환하지만 비공개 getter는 변경 가능한 목록을 반환해야합니다.

  22. 22

    메서드에서 변경 가능한 객체의 변경 불가능한 복사본 반환

  23. 23

    변경 가능한 객체가있는 자동 속성

  24. 24

    객체 키가있는 변경 가능한 맵

  25. 25

    다른 파일의 Python 목록에있는 문자열 인 경우 개체 제거

  26. 26

    주어진 범위의 변경 가능한 목록을 만드는 더 좋은 방법이 있습니까?

  27. 27

    제한이있는 개인 ID의 반복 가능한 생성

  28. 28

    2 개의 변수가있는 목록 상자에 개체를로드했습니다. 목록 상자에는 이름 만 표시됩니다.

  29. 29

    변경 불가능한 개체의 값을 대체 할 새 개체 만들기

뜨겁다태그

보관