[내일배움캠프] 파이썬 문법 기초(5) - 튜플, 집합

재명·2021년 12월 14일
0

Python

목록 보기
5/8
post-thumbnail

1-11 튜플, 집합

1. 리스트와 튜플의 차이

a = ['사과','감','배']

a[1] = '수박'

print(a)

>>> ['사과','수박','배]

#기존에 배웠던 리스트는 수정 가능한 자료형으로써 위와 같이 담겨있는 자료들을 변형, 수정할 수 있었다. 그러나 같은방식으로 튜플에 대입해보면

a = ('사과','감','배')

a[1] = '수박'

print(a)

>>> TypeError: 'tuple' object does not support item assignment

이와같이 에러가 발생함을 확인할 수 있다.

#튜플도 리스트와 마찬가지로 인덱싱과같은 기능적 유사점이 있으나 내부 자료의 변형, 수정을 원칙적으로 허용하지 않는다

people = [{'name':'bob','age':27},{'name':'john','age':'30}]
people = [('bob',27),('john',30)]

#특정한 결속을 가지는 자료쌍들에 대해서도 종종 사용된다





2. 집합

2-1) 집합의 특징

a = [1,2,3,4,3,2,3,4,5,8,7,1]

a_set = set(a)
print(a_set)

>>> 1,2,3,4,5,7,8

#집합은 중복을 허용하지 않고 기본적으로 순서가 없는 형태로 반환된다
#시스템적으로는 순서가 없는게 맞지만 가독성의 이유 때문인지 이를 출력하는 print 메서드를 썼을때숫자의 경우에는 오름차순 정렬을 해준다(?)




2-2) 연습문제

student_a = ['물리2','국어','수학1','음악','화학1','화학2','체육']
student_b = ['물리1','수학1','미술','화학2','체육']

Q. 리스트내의 자료들은 학생들이 수강중인 과목명을 의미한다. 학생A가 듣는 수업들 중 학생B가 듣지 않는 과목들을 출력하라

student_a = ['물리2','국어','수학1','음악','화학1','화학2','체육']
student_b = ['물리1','수학1','미술','화학2','체육']

print(set(student_a)-set(student_b))

A. 집합은 우리가 학창시절 배웠던 그 집합과 대부분 닮아있다. 결과적으로 A와 B의 차집합을 구하면 되기 때문에 set(student_a)-set(student_b) 혹은 set(student_a).difference(set(student_b))와 같은 형태로 결과를 도출할 수 있었다

profile
개발자가 되고싶은 늦깎이 코린이

0개의 댓글