-
[Python 기초 #4] 집합(set), 불(bool), 변수(variable)Programming 기초/Python 2023. 4. 15. 11:07
* set(집합) 자료형
- 요소에 순서가 없다.
- 중복을 허용하지 않는다.
- 딕셔너리와 비슷하게 인덱싱으로 접근하려면 리스트나 튜플로 변환해야 한다. list(), tuple()
s1 = set([1, 2, 3]) # set함수 안에 배열을 넣는다. s2 = {5, 2, 1, 2} s3 = {'Hello'} # 이건 'Hello'를 하나의 요소로 인식한다. s4 = set("hello") # hello를 구성하는 문자 하나하나를 요소로 인식한다. print(type(s3)) print(s1) print(s2) print(s3) print(s4) ------------------------ <class 'set'> {1, 2, 3} {1, 2, 5} {'Hello'} {'o', 'h', 'l', 'e'}
- 리스트 내의 중복된 요소를 제거할 때 집합이 자주 쓰인다.
l = [1, 2, 2, 2, 3, 3] newlist = list(set(l)) print(newlist) ------------------------ [1, 2, 3]
- 교집합, intersection()
s1 = set([1, 2, 3, 4, 5, 6, 7]) s2 = {4, 5, 6, 7, 8, 9} print(s1 & s2) print(s1.intersection(s2)) ------------------------------- {4, 5, 6, 7} {4, 5, 6, 7}
- 합집합, union()
s1 = set([1, 2, 3, 4, 5, 6, 7]) s2 = {4, 5, 6, 7, 8, 9} print(s1 | s2) print(s1.union(s2)) -------------------------------- {1, 2, 3, 4, 5, 6, 7, 8, 9} {1, 2, 3, 4, 5, 6, 7, 8, 9}
- 차집합, difference()
s1 = set([1, 2, 3, 4, 5, 6, 7]) s2 = {4, 5, 6, 7, 8, 9} print(s1 - s2) print(s2 - s1) print(s1.difference(s2)) print(s2.difference(s1)) ------------------------------------ {1, 2, 3} {8, 9} {1, 2, 3} {8, 9}
* 집합 자료형 관련 함수
- add() : 값 1개 추가하기
s1 = set([1, 2, 3]) s1.add(4) # s1.add([4,5]) -> 비문. print(s1) ------------------------- {1, 2, 3, 4}
- update() : 값 여러 개 추가하기
s1 = set([1, 2, 3]) s1.update([4, 5, 6]) print(s1) --------------------- {1, 2, 3, 4, 5, 6}
- remove() : 특정 값 제거하기
s1 = set([1, 2, 3, 4, 5]) s1.remove(4) print(s1)
* bool(불) 자료형
- 참(True)과 거짓(False)을 나타내는 자료형.
a = True # 예약어이므로. 꼭 첫 문자를 대문자로 써야한다. b = False print(type(a)) print(type(b)) ---------------------------- <class 'bool'> <class 'bool'>
>>> 1==1 True >>> 2>1 True >>> 2<1 False
- bool() : 참, 거짓을 알려준다.
>>> bool("python") True >>> bool("") False >>> bool([1,2,3]) True >>> bool([]) False >>> bool((1, 2, 3)) True >>> bool(()) False >>> bool({}) False >>> bool(1234) True >>> bool(0) False >>> bool(None) False >>> bool(1 < 2) True
- 자료형의 참과 거짓
자료형 값 참 or 거짓 문자열 "python" 참 " " 거짓 리스트 [1,2,3] 참 [ ] 거짓 튜플 ( ) 거짓 딕셔너리 { } 거짓 숫자형 0이 아닌 숫자 참 0 거짓 None 거짓 * 자료형의 값을 저장하는 공간, 변수
- 파이썬에서 사용하는 변수는 객체를 가리키는 것
>>> a = [1,2,3] # a는 [1, 2, 3] 리스트라는 객체가 저장된 메모리의 주소를 가리키게 된다. >>> id(a) # 객체의 주소 값을 돌려주는 파이썬 내장 함수 2506042824128 # a의 주소 >>> a = [1,2,3] >>> b = a # b에 a가 가리키는 객체의 주소를 복사시킨다. >>> id(a) 2506043088640 >>> id(b) 2506043088640 >>> a is b True
- 리스트 복사
1. [:]
>>> a = [1,2,3] >>> b = a[:] >>> a[1] = 4 # a의 1번째 인덱스의 값을 4로 교체 >>> a [1, 4, 3] >>> b [1, 2, 3] # 주소 확인 >>> id(a) 2506043381760 >>> id(b) 2506042824128
2. copy() - copy 모듈에 내장된 copy 함수. 내용을 복사한다.
>>> from copy import copy # copy 모듈 import >>> a = [1,2,3] >>> b = copy(a) >>> b [1, 2, 3] # 두 변수의 주소를 확인 >>> id(a) 2506043551040 >>> id(b) 2506043381376 #is 함수로 주소 동일한지 확인 >>> b is a False
* 변수를 만드는 여러 가지 방법
1. 튜플
(a, b) = 'python', 'life' # 튜플은 괄호를 생략해도 된다. print(a) print(b) print(type(a)) # 튜플을 활용하여 만든 변수이지만 자료형은 튜플이 아닌 문자열이다. # 단일 요소를 갖는 튜플 c = ('python',) # 튜플이 단일 요소를 갖을 때 꼭 콤마를 붙여야 한다. print(type(c)) # (주의) 콤마를 빼면, 튜플이 아닌 일반 문자열자료형이 된다. c = ('python') print(type(c)) --------------------------- python life <class 'str'> <class 'tuple'> <class 'str'>
2. 리스트를 활용해서 변수를 만드는 방법
[a, b] = ['python', 'life'] # 튜플은 괄호를 생략해도 된다. print(a) print(b) print(type(a)) #리스트를 이용해 만든 변수이지만 자료형은 리스트가 아니다. c = [1, 2, 3] print(type(c)) #리스트로 만든 변수의 자료형은 'list'이다. ------------------------------------------------------------------ python life <class 'str'> <class 'list'>
3. 여러 개의 변수에 같은 값을 대입할 수 있다.
a = b = 'python' print(a) print(b) --------------------- python python
4. 두 변수의 값을 아주 간단히 바꿀 수 있다.
a = 3 b = 5 a, b = b, a print("a =", a) print("b =", b) --------------- a = 5 b = 3
'Programming 기초 > Python' 카테고리의 다른 글
[Python 기초 #6] 함수, 사용자 입력과 출력, 파일 읽고 쓰기 (0) 2023.04.19 [Python 기초 #5] 제어문 if, while, for (0) 2023.04.18 [Python 기초 #3] 튜플(tuple), 딕셔너리(dictionary) (0) 2023.04.14 [Python 기초 #2] 리스트 자료형 (0) 2023.04.14 [Python 기초 #1] 기본 문법1 - 문자열, count, find, index, (0) 2023.04.12