튜플(tuple) : 리스트와 비슷하지만 불변형인 자료
리스트의 경우 리스트를 추가하거나 변경하는 것이 가능하지만
a = ['사과','감','배'] #리스트는 '['를 사용하며 묶는다.
a[1] = '수박' #리스트 a의 1번째 원소를 수박으로 변경
print(a)
#결과 값: ['사과','수박','배']
튜플의 경우, 추가나 변경이 불가능 하다.
a = ('사과','감','배') #튜플은 '('을 사용
a[1] = '수박'
print(a)
#결과 값: Error
주로 딕셔너리 대신 리스트와 튜플로 딕셔너리 '비슷하게' 만들어서 사용한다.
people = [('bob','24'),('john','29'),('smith','30')]
#people의 모든 요소의 0번째는 이름이 나올 것이고, 1번째는 무조건 나이가 나온다.(괄호 안에 든 튜플은 불변형)
집합(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)
#결과 값:{1, 2, 3, 4, 5}
a = ['사과','감','수박','참외','딸기']
b = ['사과','멜론','청포도','토마토','참외']
a_set = set(a)
b_set = set(b)
print(a_set & b_set) # 교집합
print(a_set | b_set) # 합집합
print(a_set - b_set) # 차집합
f-string : 문자열 포매팅 ; 문자열에서 특정 부분만 바꾸고 싶을 때 사용한다.
scores = [
{'name':'영수','score':70},
{'name':'영희','score':65},
{'name':'기찬','score':75},
{'name':'희수','score':23},
{'name':'서경','score':99},
{'name':'미주','score':100},
{'name':'병태','score':32}
]
for s in scores:
name = s['name']
score = str(s['score'])
print(name+'는 '+score+'점 입니다')
위 구문을 f-string을 이용하면 간단하게 작성할 수 있다.
scores = [...] #위와 동일
for s in scores:
name = s['name']
score = str(s['score'])
print(f'{name}은 {score}점입니다')
except 문 : 에러가 있어도 건너뛰게 할 수 있는 방법
#people 중에 20세 보다 큰 사람의 이름만 출력
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby'},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
for person in people:
if person['age'] > 20:
print (person['name'])
#결과 값 : Error (7행 bobby의 age 데이터가 없기 때문!)
이때, try except 구문을 이용하면 에러를 넘길 수 있다.
people = [...] #위와 동일
for person in people:
try:
if person['age'] > 20:
print (person['name'])
except:
name = person['name']
print(f'{name} - 에러입니다')
결과 값:
carry
ben
bobby - 에러입니다
red
queen
보통 서버에 문제가 있을 가능성이 있을 때 사용한다.
BUT! 너무 남용해버리면 결과값이 이상해지고 어떤 에러가 있는지 모르게 되어버리기 때문에 신중하게 사용하기!
'내일배움캠프 > Python' 카테고리의 다른 글
[Python]map, filter, lambda (0) | 2024.11.22 |
---|---|
[Python]삼항연산자 (0) | 2024.11.22 |
[Python]함수 (0) | 2024.11.21 |
[Python] 조건문if, 반복문for (0) | 2024.11.21 |
[Python]문자열 다루기_메소드, 인덱싱, 슬라이싱, 리스트, 딕셔너리 (3) | 2024.11.19 |