집합은 정렬되지 않은 단순 객체의 묶음이다.
집합은 포함된 객체들의 순서나 중복에 상관없이 객체의 묶음 자체를 필요로 할 때 주로 사용한다.
집합끼리의 멤버쉽 테스트 ( in , not in 연산) 를 통해 한 집합이 다른 집합의 부분집합인지 확인할 수 있으며 ,
두 집합이 교집합 등 또한 알아낼 수 있다.
set을 통해 bri 라는 집합을 선언과 동시에 초기화 하고
멤버쉽 연산 in 을 통해 요소들이 집합에 포함되어 있는지 확인한다.
그 후 , bric 이라는 집합을 만드는데 그 객체들은 bri의 객체들을 copy() 해온다.
그리고 bric에는 'china' 라는 객체를 더한다.
issuperset은 확대집합을 의미한다.
당연히 bri 집합은 bric 집합 내에 포함되니 True 값을 반환
그리고 bri 집합에서 russia 객체를 삭제 후 &(AND)연산을 통해 bri 집합과 bric 집합의 교집합을 확인.
참조
객체를 생성하고 변수에 할당해 줄 때 , 사실 실제 객체가 변수에 할당되는 것은 아니다.
변수에는 객체의 참조가 할당된다. 참조란 , 그 변수의 이름이 우리의 컴퓨터 메모리 어딘가에 저장되어 있는 실제 객체의 위치를 가리키는 것을 의미한다.
이를 객체에 이름을 바인딩 한다고 표현한다.
print("Simple Assignment")
shoplist = ['apple','mango','carrot','banana']
# my list is just another name pointing to the same object #
mylist = shoplist
# I purchased the first item , so I remove it from the list
del shoplist[0]
print("Shoplist is",shoplist)
print("mylist is ",mylist)
#Notice that both shoplst and mylist both print
#the same list without the 'apple' confirming that
#they point to the same object
print('Copy by making a full slice')
#Make a copy by doing a full slice
mylist = shoplist[:]
#remove first item
del mylist[0]
print("Shoplits is",shoplist)
print("mylist is ",mylist)
#Notice that now two lists are different
실행 결과 :
Simple Assignment
Shoplist is ['mango', 'carrot', 'banana']
mylist is ['mango', 'carrot', 'banana']
Copy by making a full slice
Shoplits is ['mango', 'carrot', 'banana']
mylist is ['carrot', 'banana']
리스트와 같은 어떤 열거형이나 복잡한 객체 ( 정수형과 같은 단순 객체 제외)의 복사본을 생성하고 싶을때는
슬라이스 연산자를 이용하여 복사본을 생성해야 한다.
단순히 한 변수를 다른 변수에 할당하게 되면 두 변수는 같은 객체를 "참조"하게 되며 실제 복사본이 생성되지는 않는다.
이 점은 꼭 주의하자
'Programming > Python' 카테고리의 다른 글
객체 지향 프로그래밍 ( Object - Oriented Programming ) (0) | 2017.11.12 |
---|---|
문자열 보충설명 (0) | 2017.11.11 |
열거형 (0) | 2017.11.11 |
사전 (0) | 2017.11.11 |
튜플 (0) | 2017.11.11 |