빈 목록 사전 생성의 어려움 이해
Python에서는 공유 참조로 인해 빈 목록 사전을 생성하는 것이 까다로울 수 있습니다. dict.fromkeys()를 사용할 때 목록 객체의. 하나의 키에 요소를 추가하려고 하면 참조로 인해 모든 키가 동일한 요소로 업데이트됩니다.
Fromkeys 메서드의 동작
dict.fromkeys에 대한 두 번째 인수가 ()(이 경우 빈 목록)가 전달되고 결과 사전의 모든 값은 목록 개체에 대한 동일한 참조를 공유합니다. 하나의 키를 수정하면 다른 모든 키에 영향을 미칩니다.
대체 솔루션
이 문제를 방지하기 위해 대체 솔루션이 있습니다.
data = {k: [] for k in range(2)}
이렇게 하면 각 키에 고유하고 빈 목록이 있는 사전이 생성됩니다.
data = dict([(k, []) for k in range(2)])
목록 이해를 사전으로 변환하여 dict 이해와 동일한 결과를 얻습니다.
data = dict((k, []) for k in range(2))
이 버전에서는 생성기 표현식이 목록 이해 단계를 우회하여 dict 생성자에 직접 전달됩니다. 표현식을 둘러싼 괄호는 생략할 수 있습니다.
이러한 대체 방법을 활용하면 빈 목록의 사전을 올바르게 생성하여 다른 키에 영향을 주지 않고 개별 키를 조작할 수 있습니다.
위 내용은 Python에서 빈 목록 사전을 만들 때 공유 참조를 피하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!