Python 기초(3): 자료 구조(list, methods, tuple, dictionary)

Sophie·2024년 1월 8일
0

Python 기초

목록 보기
3/6

※ 본문은 노마드코더의 'Python으로 웹 스크래퍼 만들기'강의 내용을 개인적으로 정리한 것입니다.

1. 리스트(list) & 메소드(Mehtods)

자료구조란 데이터를 구조화할 때 사용되며, 파이선의 자료 구조(data structure)에는 list, tuple, dictionary가 있다.

먼저, list를 만드는 방법은 대괄호([]) 안에 리스트 요소를 콤마(,)로 구분하는 것이다.

days_of_week = ["Mon", "Tue", "Wed", "Thu", "Fri"]

이렇게 만들어진 리스트를 print(days_of_week)로 출력해보면 콘솔창에 이렇게 표시된다.

['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

출력된 내용만 봤을 때는 리스트를 사용했을 때와 사용하지 않았을 때(days_of_week="Mon,Tue,Wed...")의 차이점이 없어 보이지만, 리스트는 메소드를 사용할 수 있다는 점에서 엄청난 차이점을 갖는다.

메소드란 데이터 뒤에 결합된 function을 말하는데, print, input, random 같이 데이터와의 결합없이 아무때나 쓸 수 있는 일반적인 function과는 차이가 있다.

예시에서처럼 name이라는 변수는 sophie라는 string을 가지고 있기 때문에 capitalize, upper 등의 메소드를 사용할 수 있는 것이고, 만약 string이 아닌 int를 갖는 number라는 변수가 있다면 거기에 맞는 또다른 메소드를 사용할 수 있게 된다.

변수없이 바로 "sophie"라는 string만으로도 해당 메소드들을 사용할 수 있다.

다시 돌아와서 아까 만들어 둔 days_of_week 변수를 메소드와 결합하면 다양한 기능을 사용할 수 있다.

리스트 안의 특정 데이터에 접근하는 방법은 변수 오른쪽에 대괄호를 열고, 해당 데이터가 몇 번째 자리에 있는지 적어주면 된다. 중요한 것은 1이 아니라 0부터 시작이라는 점이다.

뿐만 아니라, 마이너스 부호(-)를 넣어서 뒤에서부터 순서대로 접근할 수도 있는데 이때는 0이 아니라 -1부터 시작한다.

리스트는 문자열, 숫자 뿐만 아니라 boolean, 또다른 리스트 등을 모두 합쳐서 사용할 수 있다.

list = [1, 2, 3, True, False, "hi", [1, 2, 3]]

2. 튜플(Tuples)

튜플의 역할 자체는 리스트와 매우 비슷하다. 하지만 튜플과 리스트의 차이점은,

  1. 대괄호 대신 소괄호()를 사용
  2. 데이터 변경 불가능

그래서 days를 변경하기 위해 온점을 넣어도 쓸 수 있는 메소드가 한정적이다.

튜플에서도 리스트와 마찬가지로 특정 데이터에 접근할 수 있다.

3. 딕셔너리(Dictionary/Dicts)

딕셔너리의 특징
1. 중괄호{}를 사용
2. 이 한 쌍으로 구성된다는 점이다.

이 때, 큰따옴표("")나 작은따옴표('') 둘 중에 아무거나 사용해도 상관없고, 값의 형태는 string, int, boolean, list, tuple, dictionary 모두 사용할 수 있다.

위에서 튜플의 데이터는 변경할 수 없다고 했지만, 더 정확히는 튜플의 기존 값에 추가 혹은 일부 삭제는 불가능하지만 튜플 전체를 삭제하거나 튜플 전체의 값을 새로운 값으로 대체하는 것은 가능하다.

딕셔너리에서 특정 데이터를 가져오는 방법은 두 가지가 있는데,
1. get 메소드를 사용하거나
2. 대괄호를 사용하는 것이다.

딕셔너리에 데이터를 추가하는 방법을 살펴보면

1. 새로운 키와 값을 추가하는 방법
변수에 대괄호를 열고 새로운 키명을 적어준 후, 부등호 뒤에 해당 키의 값을 적어준다.

2. 기존의 키에 새로운 값을 추가하는 방법
변수에 대괄호를 열어 어떤 키인지 선택한 후 append 메소드를 사용해서 새로운 값을 추가해준다.

0개의 댓글