집합 자료형
s1 = set([1,2,3])
print(s1)
-> set의 생성
s1 = set('hello')
print(s1)
-> 출력이 뭔가 이상하다.
이는 set의 특징에 의해서다.
중복을 허용하지않고, 순서가 없다.
언제 유용하게 사용되는가?
-> 교집합, 합집합, 차집합
교집합 : '&' 기호 또는 intersection함수
합집합 : '|' 기호 (\에서 시프트 키 누름) 또는 union함수
차집합 : '-' 기호 사용 또는 difference 함수
관련 함수들
add() : 1개의 값만을 추가
update() : 여러 개의 값을 한꺼번에 추가
remove() : 특정 값 제거
s1 = set([1,2,3,4])
s1.update([6,5])
print(s1)
s1.remove(2)
print(s1)
2-7 자료형의 참과 거짓
문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어있으면 거짓, 비어있지 않으면 참이다.
숫자는 값이 0이면 거짓이다.
[+ None 도 거짓을 의미한다. ]
a = [1,2,3,4]
while a:
print(a.pop())
2-8 자료형의 값을 저장하는 공간, 변수
a = 3
-> 3이라는 값을 가지는 정수 자료형(객체)이 자동으로 메모리에 생성된다.
a는 변수의 이름이고, 3이라는 정수형 객체가 저장된 메모리의 위치를 가리킨다.
<파이썬의 모든 자료형은 객체이다. 3 또한 상수가 아닌 객체이다. >
동일한 객체를 가리키는 지 판단을 할 때는 is를 사용한다.
< a is b >와 같이! 동일한 객체를 가리키면 True를 아니라면 False를 반환한다.
[튜플을 괄호 '(' , ')'를 생략해도 무방하다. ]
a = 3
b = 5
a,b = b,a
print(a,b)
-> 간단하게 a와 b를 바꿀 수 있다.
> 리스트에서의 복사
a = [1,2,3]
b = a
a[1] = 4
print(a)
print(b)
복사이후에 요소값을 변경하였음에도 b 리스트에 변경내용이 저장되어있다.
이는 a, b가 이름만 다를뿐 동일한 리스트를 가리키는 변수이기 때문이다.
그렇다면 어떻게 다른 리스트를 가리키도록 할까?
1) 방법
a = [1,2,3]
b = a[:]
a[1] = 4
print(a)
print(b)
a[:]는 a 리스트 전체를 복사하여 b에 대입한다.
-> a list의 값을 변경하여도 b 리스트에는 영향을 끼치지않는다.
2) 방법
from copy import copy
a = [1,2,3]
b = copy(a)
a[1] = 4
print(a)
print(b)
'프로그래밍 > 파이썬🐍' 카테고리의 다른 글
(6)점프투파이썬_[4장 함수] (0) | 2022.01.08 |
---|---|
(5)점프투파이썬_[3장for,if,while] (0) | 2022.01.08 |
(4)점프투파이썬_2장 연습문제 (0) | 2022.01.08 |
(2)점프투파이썬[2-3문자열리스트:2-4 딕셔너리자료형] (0) | 2022.01.07 |
(1)점프 투 파이썬_[:2-2문자열자료형] (0) | 2022.01.07 |