안녕하세요 독학코딩입니다. 오늘은 리스트 데이터 타입에 대해서 배워보겠습니다. 리스트는 말 그대로 목록, 묶음입니다. 즉, str 혹은 int를 목록을 묶어서 관리하기 편하게 하기 위해 사용되는 데이터 타입니다. 조금 더 고급으로 넘어가면 물론 str, int 말고도 class나 function도 묶을 수 있습니다만 이건 넘어가겠습니다.
Nonetype = 타입이 없는 자료입니다.
bool = 참, 거짓을 의미합니다. ex) true, false
int = 숫자형을 의미합니다. ex) 1, 2, 3
float = 소수점이 있는 숫자를 의미합니다. ex) 2.334, 5.125
str = 텍스트를 의미합니다. ex) "안녕", "사과"
list = 리스트라고 합니다. []로 표현됩니다.
ex) ["안녕", "사과"], [1, 2, 3, 4], [2.33, 4.21, 5.32]
tuple = 튜플이라고 합니다. ()로 표현됩니다. 한번 구성하면 구성원을 변경할 수 없습니다.
ex) ("안녕", "사과"), (1, 2, 3, 4), (2.33, 4.21, 5.32)
dict = 딕트, 딕셔너리라고 합니다. {}로 표현됩니다. key와 value로 구성 되어있어 원하는 자료를 찾기 편합니다.
ex) {"이름"="홍길동", "나이"="43", "도시"="서울"}
여기서 이름, 나이, 도시를 key, 홍길동, 43, 서울은 value 입니다.
- Python 리스트 연산자 [int]
- Python 리스트 List[int] =
- Python 리스트 del
- Python 리스트 [:]
- Python 리스트 append
- Python 리스트 len()
- Python 리스트 min, max, sum
Python 리스트 연산자 종류
list_a = [1, 2, 3, 4, 5, 6] | |
list_a[2] | 3 |
list_a[2] = 10 | [1, 2, 10, 4, 5, 6] |
del list_a[2] | [1, 2, 4, 5, 6] |
list_a[2:4] | [3, 4] |
len(list_a) | 6 |
min(list_a) max(list_a) sum(list_a) |
1 6 21 |
list_a.append(10) | [1, 2, 3, 4, 5, 6, 10] |
Python 리스트 표현방식 [,]
리스트의 표현 방식은 간단합니다. 묶을 원소들을 []로 감싸고 각각의 원소를 , 로 구분하면 됩니다.
Python 리스트 연산자 [int]
익숙한 연산자 일 겁니다. str을 배울 때도 배웠던 연산자입니다. 리스트는 목록이기 때문에 리스트 안의 원소(element)마다 각각의 목록 번호(index)가 있습니다. 그래서 리스트의 element를 index로 출력할 수 있는 겁니다.
list_a = [1, 2, 3, 4, 5, 6]
print(list_a[4])
print(list_a[2:4])
실행해보셔야겠죠? index 한 개로 하나의 element만 출력할 수도 있고 index의 범위로 element를 출력할 수 있습니다. 제가 계속 코드 실행의 결과를 드리지 않는 건 복붙 하시더라도 직접 실행하는 게 도움이 되기 때문입니다. 가능하시면 복붙도 하지 마시고 하나하나 작성해서 실행해보시는 걸 추천드립니다.
Python 리스트 연산자 List[int] =
위에서 우리는 리스트에서 특정 index의 element를 출력하는 방법을 배웠습니다. 그런데 특정 index의 element를 수정하고 싶을 땐 어떻게 해야 될까요?? str에서는 str.replace(A, B)로 하는 기능입니다. 간단합니다.
list_a = [1, 2, 3, 4, 5, 6]
list_a[0] = 10
print(list_a)
수정하고 싶은 index를 호출하고 새로운 값을 주면 됩니다. 여기서 근데 조금 헷갈리는 개념을 하나 소개하겠습니다. 지금 당장은 필요하지 않지만 혹시 궁금하시면 더보기를 눌러주세요.
immutable과 mutable입니다. 한글로는 불변과 가변입니다. 변할 수 있는 것과 변할 수 없는 것입니다.
그러면 int, str, list, tuple 중에 어떤 게 immutable이고 mutable일까요? 아마 포스트 상단에 데이터 타입을 열심히 읽으신 분들은 tuple이 immutable이고 나머지 int, str, list는 mutable이라고 생각하실 겁니다.
그런데 실제로 immutable은 tuple과 int, str입니다. list만 mutable입니다. 여기서 조금 헷갈리실 겁니다. str도 int도 이전에 배울 때 빼고 더하고 나누고 글자를 대체하고 다 했는데 왜 불변의 값일까요??
list_a = [1, 2, 3, 4, 5, 6]
print(list_a, "\nid = ", id(list_a))
list_a[0] = 10
print(list_a, "\nid = ", id(list_a))
한번 실행 보시겠어요? id() 기능은 인자의 고유 ID를 출력하는 기능입니다. 실행해보시면 아시겠지만, 위아래의 결과가 같을 겁니다. 즉, 리스트 안에 원소를 변경해도 리스트의 고유 ID는 변경되지 않습니다.
str_a = "Study"
print(str_a, "\nid = ", id(str_a))
str_a.replace("S","A")
print(str_a, "\nid = ", id(str_a))
print(str_a.replace("S","A"), "\nid = ", id(str_a.replace("S","A")))
new_a = str_a.replace("S","A")
print(new_a, "\nid = ", id(new_a))
하지만 str은 .replace 를 통해서 글자를 변경하면 새로운 ID를 부여받게 됩니다. 즉, 대체하며 이미 이전과는 같은 변수가 아닙니다. 어렵죠? 저도 immutable과 mutable을 이해하는데 엄청 오래 걸렸던 거 같습니다. 완벽히 이해하실 필요는 없습니다. 그냥 파이썬에는 immutable과 mutable이 있구나 알고 지나가 주시면 됩니다.
Python 리스트 연산자 del List[int]
리스트를 수정하는게 아니라 삭제하고 싶을 떈 어떻게 할까요? 간단합니다.
list_a = [1, 2, 3, 4, 5, 6]
del list_a[0]
print(list_a)
List[int]로 원하는 element를 호출하고 del로 삭제하면 됩니다.
Python 리스트 연산자 [:]
특정 index의 element를 수정하는 것에 더 해서 한 번에 많은 element를 수정하고 싶으면 어떻게 해야 될까요?
list_a = [1, 2, 3, 4, 5, 6]
list_a[1:2] = [12,13]
print(list_a)
list_a = [1, 2, 3, 4, 5, 6]
list_a[1:2] = [12,13,14,15]
print(list_a)
list_a = [1, 2, 3, 4, 5, 6]
list_a[1:2] = [12]
print(list_a)
list_a = [1, 2, 3, 4, 5, 6]
list_a[1:2] = 12
print(list_a)
위에서 특정 index의 element를 수정하고 싶으면 list_a[0] =10으로 했습니다. 여러 element를 수정하고 싶을 때도 비슷합니다. 수정하고 싶은 영역을 [A:B]로 표시하고 새로운 리스트를 설정해주면 됩니다. 여러 개의 index를 지정하여 수정하는 것이기 때문에 새롭게 설정해주는 값도 똑같은 리스트여야 합니다.
만약 리스트의 여러 element를 삭제하고 싶거나 아니면 아예 빈 리스트로 만들고 싶으면 어떻게 해야 될까요?
list_a = [1, 2, 3, 4, 5, 6]
list_a[1:2] = []
print(list_a)
list_a = [1, 2, 3, 4, 5, 6]
list_a = []
print(list_a)
간단합니다. 삭제하고 싶은 영역을 새로운 값인 빈 리스트 []로 선언해주면 됩니다. 전체 리스트에도 적용됩니다.
Python 리스트 연산자 .append
수정하고 삭제하는 방법은 배웠는데 리스트에 새로운 element 추가는 어떻게 할까요? append 기능을 사용하시면 됩니다. 한글로는 덧붙이다입니다. 아마 리스트의 기능 중 가장 많이 사용하는 기능이 아닐까 싶습니다.
list_a = [1, 2, 3, 4, 5, 6]
list_a.append(10)
print(list_a)
list_a.append([15, 16])
print(list_a)
간단하죠? 새로운 element를 추가하고 싶은 리스트에 .append(A) 하시면 A가 리스트에 추가됩니다. A는 int, str, list 어떤 것 이어도 상관없습니다. 다만, append는 리스트의 제일 마지막에 추가된 다는 점 기억하고 계셔야 합니다.
Python 리스트 연산자 len()
리스트의 길이, 양을 알고 싶으면 어떻게 할까요? 물론 리스트 자체가 짧다면 그냥 눈으로 봐도 양을 알 수 있을 겁니다. 그런데 사이트의 전체 가입자, 사진첩에 등록된 전체 사진 수와 같이 수백, 수천 개의 element를 갖고 있는 리스트의 정확한 양을 알고 싶다면요?? 눈으로 세다가는 틀릴 수도 있을겁니다. 그래도 파이썬에서는 간단한 기능을 제공합니다. (실제로 파이썬을 하다보면 수백, 수천줄의 리스트를 다루는 경우가 많습니다. )
list_a = [1, 2, 3, 4, 5, 6]
print(len(list_a))
Python 리스트 연산자 min, max, sum,
위와 비슷한 예를 들어야 할 것 같습니다. 수백, 수천개의 원소를 갖고 있는 리스트의 최솟값, 최댓값, 합을 알고 싶다면 이렇게 하시면 됩니다.
list_a = [1, 2, 3, 4, 5, 6]
print(min(list_a))
print(max(list_a))
print(sum(list_a))
간단하기도 하고 영어만 봐도 이해가 되니 길게 설명하지는 않겠습니다.
오늘은 파이썬 리스트 타입의 연산자에 대해서 배웠습니다. 이제 파이썬의 기초 교육이 거의 다 끝나갑니다. tuple과 dict에 대해서 배우고 나면 이제 실제로 파이썬을 통해서 무언가 만들어보는 포스트를 시작할테니 계속 따라와주시면 감사하겠습니다.
'Python > Python 초급' 카테고리의 다른 글
Python 파이썬 Dictonary, dict(), 딕셔너리 데이터 타입 (0) | 2021.11.22 |
---|---|
Python 파이썬 Tuple, tuple(), 튜플 데이터 타입 (0) | 2021.11.20 |
Python 파이썬 String, str(), 문자열 데이터 타입 (0) | 2021.11.18 |
Python 파이썬 Integer, int(), 숫자형 데이터 타입 (0) | 2021.11.17 |
Python 파이썬 IDLE, PyCharm 설치 (0) | 2021.11.16 |
댓글