리스트 자료형
여러개의 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형
# 리스트 초기화
- 리스트 대괄호는([]) 안에 원소를 넣어 초기화 하며, 쉼표(,)로 원소를 구분한다.
- 비어있는 리스트를 선언하고자 할 때는 list() 혹은 간단히 [] 이용
- 리스트의 원소에 접근할 때는 인덱스 값을 괄호에 넣는다
- 인데스는 0 부터 시작
a = [1,2,3,4,5,6,7,8]
print(a)
=>[1,2,3,4,5,6,7,8]
print(a[3])
=>4
n = 10
a = [0]*n
print(a)
[0,0,0,0,0,0,0,0,0,0]
# 리스트의 인덱싱과 슬라이싱
인덱싱 :인덱스 값을 입력하여 리스트의 특정한 원소에 접근하는 것을 인덱싱(indexing) 이라고 한다.
- 파이썬의 인덱스 값은 양의 정수와 음의 정수 모두 사용
- 음의 정수를 넣으면 원소를 거꾸로 탐색
a = [1,2,3,4,5]
print(a[2])
=>3
print(a[-1])
=>5
print(a[-3])
=>3
a[3] = 7
print(a)
=> [1,2,3,7,5]
슬라이싱 : 리스트에서 연속적인 위치를 갖는 원소들을 가져와야 할 때는 슬라이싱을 이용한다.
- 대괄호 안에 콜론( : ) 을 넣어서 시작 인덱스와 끝 인덱스를 설정
- 끝 인덱스는 실제 인덱스보다 1을 더 크게 설정
a = [1,2,3,4,5]
print(a[3])
=>4
print(a[1:4])
=> [2,3,4]
# 리스트 컴프리헨션
리스트를 초기화 하는 방법 중 하나
- 대괄호 안에 조건문과 반복문을 적용하여 리스트를 초기화 한다.
array = [i for in range(10)]
print(array)
=>[0,1,2,3,4,5,6,7,8,9]
# 조건문
array = [i for i in range(10) if i % 2 == 1]
print(array)
=>[1,3,5,7,9]
array = [i*i for i in range(1,10)]
print(array)
=> [1,4,9,16,25,36,49,64,81]
- 리스트 컴프리 헨션은 2차원 리스트를 초기화 할 때 효과적으로 사용
- N x M 크기의 2차원 리스트를 한 번에 초기화 해야 할 때 매우 유용
- array = [[0] * m for _ in range(n)]
※ _ 는 단순한 반복을 위해 사용
n = 4
m = 3
array = [[0] * m for _ in range(n)]
print(array)
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
# 리서트 관련 기타 메서드
append() - 리스트에 원소를 하나 삽입
sort() - 정렬(오름차순) / sort(reverse = True) - 정렬(내림차순)
reverse() - 원소의 순서를 뒤집어 놓는다.
insert() - 특정할 인덱스 위치에 삽입
count() - 특정한 값을 가지는 데이터의 개수를 셀 때 사용
remove() - 특정한 값을 갖는 원소 제거( 여러개 일 때 하나만 제거)
a = [1,4,3]
a.append(2)
print(a)
=>[1,4,3,2]
a.sort()
print(a)
=> [1,2,3,4]
a.sort(reverse = True)
print(a)
=> [4,3,2,1]
a.insert(2,3) #2번 인덱스에 3이라는 값을 넣는다.
print(a)
=>[1,2,3,3,4]
print(a.count(3))
=>2
a.remove(1)
print(a)
=>[2,3,3,4]
#리스트에서 특정값을 가지는 원소 모두 제거
a = [1,2,3,4,5,5,5]
remove_set = {3,5}
# i라는 값을 반환하는데 a라는 값을 i 번돌리면서 확인을한다.
# 이때 i의 값이 remove_set 에 없을 경우에만 i 로 반환한다.
# 즉 3,5 값이 아닐 때만 반환한다.
result = [i for i in a if i not in remove_set]
print(result)
=>[1,2,4]
이 자료는 동빈 나 님의 이코테 유튜브 영상을 보고 정리한 자료입니다.
참고 : www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC
'Algorithm' 카테고리의 다른 글
[Algorithm] 6 강 : 파이썬 문법 - 사전 자료형, 집합 자료형 (0) | 2020.10.18 |
---|---|
[Algorithm] 5 강 : 파이썬 문법 - 문자열 자료형, 튜플 자료형 (0) | 2020.10.16 |
[Algorithm] 3 강 : 파이썬 문법 - 수 자료형 (0) | 2020.10.14 |
[Algorithm] 2강 : 알고리즘 성능 평가란? (0) | 2020.10.13 |
[Algorithm] python 괄호 변환 (kakao 2020 프로그래머스) (0) | 2020.09.15 |