오늘의 내용 미리보기
본문
이번 시간에는 파이썬의 자료구조에 대해서 배워봅시다.
파이썬에는 3가지 자료 구조가 존재합니다.
1. 리스트
2. 튜플
3. 딕셔너리
오늘은 이 세 가지를 배워보고 각각의 차이점에 대해서 알아볼 건데 그전에 'Method'부터 알고 넘어갑시다.
Method
메소드는 데이터 뒤에 결합된 function을 뜻합니다.
기본적으로 우리가 사용하던 print와 같이 함수지만 어떤 데이터와 결합하여 사용할 수 있습니다.
예시를 볼까요?
upper() 메소드는 입력받은 문자열을 대문자로 반환해 줍니다.
다른 예시도 볼까요?
captialize() 메소드는 입력받은 문자열의 첫 글자를 대문자로 반환합니다.
이런 식으로 어떤 자료형과 엮여있는 함수를 우리는 메소드라고 부릅니다.
간단하게 살펴봤으니 이제 자료 구조들을 배우고 여기서 어떻게 적용되는지 알아봅시다.
List
리스트는 원소들이 연속적으로 저장되는 형태의 자료형입니다.
이때 저장되는 요소들이 꼭 같은 자료형일 필요는 없습니다.
리스트를 한 번 만들어 볼까요?
간단하게 대괄호를 열고 닫으면 리스트가 완성됩니다.
혹은 이런 방식도 있습니다.
이와 같은 방식으로 리스트를 생성할 수 있습니다.
그럼 리스트에 원소를 넣어볼까요?
이런 식으로 굉장히 다양한 원소를 넣을 수 있습니다.
문자열, 숫자, 불리언까지 모든 원소를 가질 수 있습니다.
또한 이런 식으로 중복된 원소를 가질 수 있습니다.
리스트에서 쓸 수 있는 메소드를 몇 개 알아볼까요?
count라는 메소드는 해당 리스트 안에 목표하는 원소의 개수를 세줍니다.
clear의 경우 리스트를 빈 리스트로 초기화해 줍니다.
append는 리스트의 끝부분에 해당 요소를 추가해 줍니다.
pop은 리스트의 끝에 있는 요소를 제거합니다.
remove는 목표한 원소를 제거합니다.
이때 2개 이상이라면 가장 처음 만나는 원소를 제거합니다.
메소드는 여럿 알아봤으니 이제 리스트의 특정 요소만 뽑는 방법을 알아봅시다.
이렇게 리스트의 뒤에 대괄호를 붙여서 숫자를 넣어주면 해당 위치의 값만 나오게 됩니다.
이를 인덱스(index)라고 합니다.
그럼 위의 예시에선 어떤 요소가 나올까요?
이상하게도 토마토가 튀어나옵니다.
분명 토마토는 3번째에 있는데 무언가 오류가 있는 걸까요?
그렇지 않습니다.
사람은 숫자를 1부터 세지만
컴퓨터는 숫자를 0부터 셉니다.
그래서 0은 'Apple' 1은 'Banana' 2가 'Tomato'가 됩니다.
Tuple
이번에는 튜플에 대해서 알아봅시다.
튜플도 리스트와 굉장히 비슷하게 사용합니다.
대괄호 대신 소괄호를 사용하는 차이가 있겠네요.
그리고 가장 중요한 차이는 튜플은 한 번 생성하면 값을 수정할 수 없습니다.
이를 불변성이 있다고 합니다.
그리고 튜플은 메소드의 개수도 적습니다.
2개만 가지고 있는데
1. count()
2. index()
이렇게 있습니다.
count는 위에서 봤으니까 index를 한 번 볼까요?
index는 원하는 원소의 인덱스를 반환합니다.
이 경우에는 1을 반환하겠네요.
리스트와 마찬가지로 인덱스에 접근할 때는 대괄호를 이용해서 접근이 가능합니다.
Dictionary
딕셔너리는 Key와 Value를 쌍으로 갖습니다.
딕셔너리는 중괄호를 사용해서 표현합니다.
예시를 봅시다.
Apple이라는 키는 3이라는 밸류를,
Banana라는 키는 4라는 밸류를,
Tomato라는 키는 2라는 밸류를 갖습니다.
메소드도 조금 알아볼까요?
get은 키값을 입력하면 해당 키의 밸류를 반환합니다.
이런 방식으로도 똑같이 작동합니다.
pop을 통해 해당 키값을 제거할 수 있습니다.
다른 예시를 통해 추가로 알아봅시다.
딕셔너리의 밸류도 문자형, 숫자형, 불리언을 모두 가질 수 있습니다.
그리고 리스트도 밸류로 가질 수 있습니다.
여기에 값을 추가해 볼까요?
리스트에서 사용했던 append를 이용해 값을 추가할 수 있습니다.
다양한 자료구조와 메소드를 알아보았습니다.
마지막으로 이 자료구조를 이용해 사용할 수 있는 for 문에 대해서 알아봅시다.
For 반복문
아까 봤던 음식에 대한 리스트를 한 번 가져와볼까요?
만약 여기에 있는 목록을 하나씩 출력해야 한다면 어떻게 해야 할까요?
이런 식으로 할 수 있겠죠?
근데 귀찮잖아요.
그래서 조금 더 간결하게 지난 시간에 배운 while 문을 이용해 줄여봅시다.
이런 식으로 인덱스를 표시할 수를 하나 만들고 반복문을 돌며 하나씩 늘려나가는 방법이 있습니다.
그런데 이것도 귀찮잖아요?
조금 더 줄이기 위해 for 문을 사용해 봅시다.
놀랍게도 굉장히 간결해졌죠?
여기서 i의 자리에는 다른 문자가 와도 상관없습니다.
임의의 변수를 하나 생성해 주는 거예요.
이때 i는 food의 목록 순서에 따라서 변화합니다.
처음에는 Apple, 그다음 반복이 될 때는 Banana, 마지막에는 Tomato가 되는 것이죠.
이와 비슷하게 range를 사용해서도 나타낼 수 있습니다.
이때는 i가 0, 1, 2 순서로 변화합니다.
len은 문자열의 길이를 반환하는 함수입니다.
여기서는 food의 길이인 2를 반환합니다.
따라서 i는 0부터 2까지 반복을 하며,
food[i] 에 맞는 각 원소를 반환하는 것이죠.
마지막으로 복습하기
이번 시간에는 메소드란 무엇인지,
파이썬의 3가지 자료 구조인 리스트, 튜플, 딕셔너리
그리고 for 반복문까지 학습했습니다.
다음시간에 만나요 안뇽!
숙제
https://www.acmicpc.net/problem/2438
https://www.acmicpc.net/problem/2439
https://www.acmicpc.net/problem/10950
https://www.acmicpc.net/problem/10952
https://www.acmicpc.net/problem/8393
https://www.acmicpc.net/problem/25304
'T-SUM 멘토링' 카테고리의 다른 글
[T-SUM] 9주차 자료 - Numpy를 통한 몬테카를로 시뮬레이션 (0) | 2023.08.16 |
---|---|
[T-SUM] 8주차 자료 - Pandas를 통한 시계열데이터 분석 (0) | 2023.08.10 |
[T-SUM] 6주차 자료 - while 반복문, 라이브러리 (0) | 2023.07.12 |
[T-SUM] 5주차 자료 - if/else/elif 조건문, and/or (0) | 2023.07.06 |
[T-SUM] 4주차 자료 - 변수와 함수, 매개변수와 인수 (0) | 2023.06.22 |