>  기사  >  백엔드 개발  >  Python의 집합 컬렉션은 변수 유형입니까?

Python의 집합 컬렉션은 변수 유형입니까?

anonymity
anonymity원래의
2019-06-13 09:36:227054검색

변경 가능/불변 객체란 무엇인가요? 변수가 변경되면 해당 변수가 가리키는 값은 변경할 수 없으므로 원래 값을 복사한 다음 변경하는 것과 같습니다. 이렇게 하면 새 주소가 열리고 변수는 이 새 주소를 가리킵니다.

Variable object, 이 개체가 가리키는 메모리의 값은 변경될 수 있습니다. 변수(정확하게는 참조)가 변경되면 해당 변수가 참조하는 값이 실제로 직접 변경됩니다. 복사가 발생하지 않고 새 주소가 열리지 않습니다.

Python에서는 숫자 유형(int 및 float), 문자열 str 및 tuple tuple이 모두 불변 유형입니다. 목록, 사전 및 세트는 변수 유형입니다.

Python의 집합 컬렉션은 변수 유형입니까?

코드를 보는 것이 더 직관적입니다.

세트 컬렉션의 코드를 보세요:

abb = {1, 2, 3}
acc = abb
print(id(abb), id(acc))
acc.add(4)
print(abb)  # {1, 2, 3, 4} 
print(id(abb), id(acc)) # 相等
#🎜 🎜#가변객체로 인한 변수 객체는 수정이 가능하므로 복사한 후 변경할 필요가 없고 그 자리에서 직접 변경할 수 있으므로 새로운 메모리가 열리지 않으며 전후의 ID가 변경되지 않습니다. 변화.

물론 불변객체의 경우는 그렇지 않습니다. 이것과 비교해보시면 됩니다.

abc = 3
dd = abc
dd = 43
print(abc)  # 3,并不随dd的改变而改变

하지만 복사본이라면 그냥 복사에 불과합니다. 내용을 전달하고 인용하지 않습니다. 이는 원본 목록을 수정하지 않고 목록의 값을 사용하려는 경우 특히 유용합니다.

blist = alist[:]  # or alist.copy()
print(alist is blist)  # False
blist.append(4)
print(alist)  # 还是[1,2 ,3]没有变化

위 내용은 Python의 집합 컬렉션은 변수 유형입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.