Algorithm

[Algorithm] 4 강 : 파이썬 문법 - 리스트 자료형

반응형

리스트 자료형


여러개의 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형 

 

 

 

# 리스트 초기화

- 리스트 대괄호는([]) 안에 원소를 넣어 초기화 하며, 쉼표(,)로 원소를 구분한다.

- 비어있는 리스트를 선언하고자 할 때는 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

반응형