반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- sql연습문제
- 코드잇
- 행렬
- 윈도우함수
- SQL
- 데이터분석
- 영국석사
- numpy
- 결정트리
- 코딩
- Seaborn
- CSS
- for반복문
- 경사하강법
- 유학생
- 선형회귀
- 로지스틱회귀
- 판다스
- 코딩독학
- 머신러닝
- 코드잇TIL
- 오늘도코드잇
- 코딩공부
- 코드잇 TIL
- matplotlib
- HTML
- 런던
- 파이썬
- 다항회귀
- 나혼자코딩
Archives
- Today
- Total
영국 척척석사 유학생 일기장👩🏻🎓
(파이썬) 데이터 구조의 유형 중 가장 많이 쓰이는 리스트(list) 알아보기 본문
728x90
반응형
1. 데이터 구조
- 데이터 구조란 다양한 방식으로 데이터 유형들을 모아 조직하고 그룹화하는 데이터 컨테니어 혹은 데이터 컬렉션입니다.
- 데이터가 담긴 파일들을 정리해 놓은 파일 폴더라고 볼 수 있습니다.
2. 리스트
- 리스트는 파이썬에서 자주 사용되는 데이터 구조입니다.
- 대괄호[]를 사용합니다.
- 리스트에는 모든 데이터 유형을 섞고 매칭시켜 담을 수 있습니다.
list_of_random_things = [1, 3.4, 'a string', True]
- 이 리스트에는 4개의 요소가 있습니다.
3. 리스트의 특징
1) 인덱싱
- 리스트처럼 순서가 있는 모든 컨테이너에는 파이썬에서 인덱스 0부터 인덱싱됩니다.
- 그러므로 위의 리스트에서 첫 번째 값을 가져오려면 아래와 같이 작성할 수 있습니다.
list_of_random_things[0]
#결과
1
- 다음 코드를 사용하여 마지막 요소를 가져올 수 있는 것 처럼 보이지만, 그렇지 않습니다.
list_of_random_things[len(list_of_random_things)]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-34-f88b03e5c60e> in <module>()
----> 1 lst[len(lst)]
IndexError: list index out of range
- 하지만 인덱스를 1만큼 줄이면 마지막 요소를 반환할 수 있습니다.
list_of_random_things[len(list_of_random_things) -1]
#결과로 마지막 요소인 True 출력
True
- 인덱스가 0부터 시작되기 때문입니다.
- 또한, 다른 방법으로 리스트의 끝부분부터 인덱싱 할 수 있습니다.
- 이 때 -1은 마지막 요소이고 -2는 마지막 요소로부터 두 번째 요소입니다.
list_of_random_things[-1]
True
list_of_random_things[-2]
a string
2) 슬라이싱
- 리스트 슬라이싱을 사용하면 리스트에서 한꺼번에 여러 값을 가져올 수 있습니다.
- 슬라이싱을 사용할 때 왼쪽 숫자의 인덱스는 포함되고 오른쪽 숫자의 인덱스는 제외됩니다.
list_of_random_things = [1, 3.4, 'a string', True]
list_of_random_things[1:2]
[3.4]
- 따라서 리스트에서 3.4만 리턴됩니다. 여기서 리스트를 리턴합니다.
- 리스트의 시작 부분부터 시작하려는 경우에는 시작값을 아래와 같이 생략할 수도 있습니다.
list_of_random_things[:2]
[1, 3.4]
- 또한, 리스트의 끝부분까지 모든 요소를 리턴하는 경우에는 마지막 요소를 생략할 수 있습니다.
list_of_random_things[1:]
[3.4, 'a string', True]
- 이러한 유형의 인덱싱은 문자열에도 똑같이 적용되고, 문자열인 경우에는 리턴 값이 문자열이 됩니다.
- 아래 글을 참고하시면 됩니다.
🔻(참고)문자열과 리스트🔻
3) in 과 not in
- 리스트 안에 어떤 요소가 있는지의 여부를 알기 위해, 또는 한 문자열이 다른 문자의 하위 문자열인지를 나타내는 불(bool) 값을 리턴하기 위해 in 과 not in 도 사용할 수 있습니다.
- in : 리스트 안에 어떤 요소가 있는지 확인
- not in : 리스트 안에 어떤 요소가 없는지 확인
'this' in 'this is a string'
True
'in' in 'this is a string'
True
'isa' in 'this is a string'
False
5 not in [1, 2, 3, 4, 6]
True
5 in [1, 2, 3, 4, 6]
False
🔻(참고)리스트 메소드🔻
4) 변경 가능성 (mutability)
- 변경 가능성이란 객체가 생성된 후에 변경할 수 있는지를 뜻합니다.
- 어떤 객체를 변경할 수 있다면 그 객체는 mutable 하다고 말합니다.
- 하지만 어떤 객체가 생성된 후에 변경이 불가능하다면 그 객체는 immutable 하다고 말합니다.
- 여기서, 리스트와 문자열의 차이점이 생깁니다.
- 리스트는 변경 가능하고 문자열은 변경가능하지 않습니다.
my_lst = [1, 2, 3, 4, 5]
my_lst[0] = 'one'
>>> print(my_lst)
['one', 2, 3, 4, 5]
- 리스트에서는 1을 one으로 대체할 수 있습니다.
- 하지만 아래의 문자열을 변경하려고 하면 오류가 납니다.
greeting = "Hello there"
greeting[0] = 'M'
- 생성된 문자열을 변경할 수 없으므로 완전히 새로운 문자열을 만들어야 합니다.
greeting = "Hello there"
greeting = "Mello there"
5) 순서 (order)
- 순서는 객체에 있는 요소의 위치를 사용하여 요소에 액세스할 수 있는지에 대한 것입니다.
- 문자열과 리스트는 모두 순서가 있으므로 순서를 이용하여 리스트와 문자열의 일부분에 액세스할 수 있습니다.
6) 리스트 안의 리스트 (Nested List)
- 리스트 안에는 또 다른 리스트가 있을 수 있습니다.
- 이를 영어로 nested list라고 부릅니다.
# 세 번의 시험을 보는 수업
grades = [[62, 75, 77], [78, 81, 86], [85, 91, 89]]
# 첫 번째 학생의 성적
print(grades[0])
# 세 번째 학생의 성적
print(grades[2])
# 첫 번째 학생의 첫 번째 시험 성적
print(grades[0][0])
# 세 번째 학생의 두 번째 시험 성적
print(grades[2][1])
# 첫 번째 시험의 평균
print((grades[0][0] + grades[1][0] + grades[2][0] / 3)
- 위와 같이 실행하면 아래와 같은 결과가 나옵니다.
[62, 75, 77]
[85, 91, 89]
62
91
75.0
728x90
반응형
'코딩공부 > Python' 카테고리의 다른 글
(파이썬) 딕셔너리(dictionary)와 동일성 연산자 is, is not, get 메소드 복합 데이터 구조 알아보기 (0) | 2024.06.05 |
---|---|
(파이썬) 데이터 구조 유형 중 튜플(tuple)과 세트(set) 개념 쉽게 알아보기 (0) | 2024.06.05 |
(파이썬) 파이썬 스타일 가이드 (PEP 8) (0) | 2023.05.10 |
(파이썬) Syntactic Sugar (0) | 2023.05.10 |
(파이썬) 옵셔널 파라미터 (optional parameter) (0) | 2023.05.10 |