보통 이렇게 a라는 이름의 박스 안에 '사과, 수박, 키위'가 있다고 알려주고, a박스 안에 무엇이 있는지 보여줘-라고 프린트하면 리스트에 모든 내용이 나열된다. 만약 여기서 첫 번째 내용물인 '사과'만 출력해 달라고 하고 싶다면 a 박스 내용 출력을 요청하는 print 옆에 사과가 몇 번째에 들어 있는지 확인한 후 첫 번째의 경우 [0]을 넣으면 '사과'만 출력된다.
a = ['사과', '수박' ,'키위']
print(a[0])
만약 a라는 박스 안에서 두 번째 위치한 '수박'을 '석류'로 바꾸고 싶다면 (1) 리스트 나열 후, (3) 프린트 출력 전, (2) 중간에 a박스 속 1번째 위치한 수박은 석류야라는 식으로 바꾸어주면 된다. 여기서 주의해야 할 점은 어느 위치에 있는지를 알려주는 박스는 [ 숫자 ]를 써야 한다는 것이다.
a[1] = '석류'
a = ['사과', '수박' ,'키위']
a[1] = '석류'
print(a)
그러면 ['사과', '석류', '키위']라는 결과를 얻는다.
튜플 (tuple) : 리스트와 비슷하지만 불변형이라 한번 선언하면 수정이 불가하다.
튜플은 리스트와 비슷하지만 불변인 자료형으로 순서가 존재! 위에 리스트 나열 때 []를 사용한 것과 다르게 ()를 사용한다. 위와 똑같은 내용에 a = ['사과', '수박' , '키위']를 a = ('사과', '수박' , '키위')로 바꾸어 똑같이 프린트하면 똑같은 결괏값이 나온다.
a = ('사과', '수박' ,'키위')
print(a)
a[1] = '석류'
하지만 여기에 똑같이 '석류'를 더하려고 하면, 에러가 나서 '수박'을 '석류'로 바꾸는 작업은 불가하다.
딕셔너리 대신 리스트와 튜플로 딕셔너리 '비슷하게' 만들어 사용해야 할 때 많이 쓰인다고 한다.
a_dict = [('bob','24'),('john','29'),('smith','30')]
집합 (set)
좋은 점: 중복이 제거된다.
집합은 말 그대로 '집합'을 구현하는 방법.
a라는 박스 안에 여러 숫자가 들어 있다면 a_set이라는 변수를 만들어서 리스트 안에 내용 (a)을 set 안에 넣어주면 집합이 만들어진다.
a = [1,2,3,4,5,3,4,2,1,2,4,2,3,1,4,1,5,1]
a_set = set(a)
print(a_set)
set 세트를 프린트하면 여러 숫자 중에 반복되지 않도록 {1, 2, 3, 4, 5}만 출력된다.
a = ['사과','감','수박','참외','딸기']
b = ['사과','멜론','청포도','토마토','참외']
교집합 / 합집합 / 차집합
a = ['사과','감','수박','참외','딸기']
b = ['사과','멜론','청포도','토마토','참외']
a_set = set(a)
b_set = set(b)
print(a_set & b_set) # 교집합. a & b에 둘다 있는 것 {사과, 참외} 가 나올 것
print(a_set | b_set) # 합집합. 여기서 | 는 엔터 위에 있는 것으로 결과는 {'사과', '감', '토마토', '수박', '청포도', '참외', '딸기', '멜론'}
✍️ A가 들은 수업 중, B가 듣지 않은 수업을 찾아보기
- student_a = ['물리 2', '국어', '수학 1', '음악', '화학 1', '화학 2', '체육'] student_b = ['물리 1', '수학 1', '미술', '화학 2', '체육']
student_a = ['물리2','국어','수학1','음악','화학1','화학2','체육']
student_b = ['물리1','수학1','미술','화학2','체육']
set_a = set(student_a)
set_b = set(student_b)
print(set_a - set_b)
a와 b의 '차집합' 구한다고 하면 이미 중복되는 건 세트에서 빼주었기 때문에, 그저 a - b 세트 해주면 된다.
그러면 {'화학 1', '물리 2', '음악', '국어'}이라는 결과가 가온다.
print(set_a - set_b)
끝!
'개발일기 [Python 파이썬]' 카테고리의 다른 글
[Python try except] 파이썬 에러 예외처리 (0) | 2024.02.19 |
---|---|
[Python for & f] f-string (직관적인 문장 만들기) (0) | 2024.02.19 |
[Python if & for] 조건문 (if), 반복문 (for) (0) | 2024.02.19 |
[Python(list) {dict}] 파이썬 리스트 & 딕셔너리 (0) | 2024.02.19 |
Python 파이썬 문법 기초 (0) | 2024.02.19 |