Python

[Python] 리스트 자료형

야챔 2021. 3. 31. 23:43

리스트자료형 정리...

 

리스트를 사용하면 요소를 여러 개 담을 수 있다.

a = [ '가', '나', '다', '라', '마'] 이면 a 라는 변수 안에 가나다라마가 담겨있다.

 

a = [ ]  #a는 비어있는 리스트이다. a를 리스트로 초기화시켜줌

리스트 안에 숫자, 문자 등등... 들어갈 수 있다. 쉼표로 나누어줌

a = ['a', 3, 'b', ['a', 'b']]  #리스트안에 리스트를 요소로 가질 수 있다.

 

 

 

리스트 인덱싱

리스트 안의 특정 요소를 꺼내고 싶다면 인덱싱을 사용하자.

a = ['a', 3, 'b', 1, ['a', 'b'], 7]  인 리스트를 가지고 있다.

 

[요소1, 요소2, 요소3 ....] 이 있다면 index는 0부터 1, 2 ... 이렇게 된다...

[0,        1,       2     ....]

 

a[0] 을 한다면 index가 0 인건 'a' 이다.

a[1] 이면 3, a[2] 이면 'b'

a[1]+a[3] 은 3+1 이라 4가 된다. 

a[4]는 ['a', 'b']이다.

 

a[-1] 도 가능하다.

-1을 하면 리스트의 요소 맨 마지막이 무엇인지 알 수 있다.

[..., 요소5, 요소6, 요소7] 이면 -1부터... -2, -3, ...

[...,   -3,       -2,      -1]

a[-1] 은 7이다.

a[-3] 은 1이다.

a[-2] 은 ['a', 'b'] 이 나온다.

 

 

a[4] 또는 a[-2] 를 하면 ['a', 'b'] 이 나오는데 이 중에서 a를 뽑아내고 싶다면? (이중 리스트)

a[4][0]을 하면 된다.

a[4][1] 은 'b' 이다.

 

a[-2][0] 은? 'a' 이다.

 

 

삼중 리스트 a = ['a', 3, [1, 2, [3, 4]]] 에서 인덱싱 하려면?

a[2][2][0] 이면 3

a[2][2][1] 이면 4    이다.

 

 

리스트 슬라이싱

a = [1, 2, 3, 4, 5, 6] 일때 2,3,4 만 가져오고 싶다..

슬라이싱을 이용한다.

 

a[1:4]리면 [2, 3, 4] 가 나온다.

 

[시작하고 싶은 인덱스, 이 인덱스 이전까지 나타내고 싶음]

이 말이 뭐냐.. 시작은 상관이 없다.. :4 는 사실 1,2,3 인덱스이다.

 

a[3:] 은 인덱스 3부터 끝까지 나타내겠다는 것이다. [4, 5, 6] 이 나온다.

a[:3] 은 처음부터 인덱스 3번째 전까지, 즉 2번째 인덱스까지 나타내겠다는 것이다. [1, 2, 3] 이 나온다.

 

 

또 이중으로 된 리스트는 슬라이싱을 어떻게 하나....

a = ['a', 3, 'b', ['a', 'b']] 일 때

 

a[1:4] 이면 [3, 'b', ['a', 'b']] 이 나온다.

첫번째처럼 [3][:1]하면 ['a'] 가 나온다.

 

 

위의 사진의 차이는 자료형 차이다. ['a'] 는 리스트고 'b'는 문자열이다.

[ : ] 라고 슬라이싱하면 리스트형태로 주는듯

 

 

리스트 반복

a = [1,1,1] 일때 a * 2 하면 [1,1,1,1,1,1] 가 된다.

 

 

리스트 길이

a = [1, 1, 1] 일 때 len(a) 하면 3이 된다. 길이니까...

 

 

리스트 값 수정

a = [1, 1, 1] 라 마지막 1을 3으로 바꿀려면

a[2] = 3 하면된다.

그럼 리스트 a는 [1, 1, 3] 이 된다.

 

 

리스트 요소 삭제 del 함수

a = [1, 1, 3] 일 때 3을 삭제하고 싶다.

del a[2] 를 하면 인덱스 2에있는 값이 사라진다.

리스트 a는 [1, 1] 이 된다.

 

del 객체

(객체는 파이썬에서 사용되는 모든 자료형)

del 에서도 슬라이싱을 이용하여 삭제할 수 있다.

 

 

리스트 요소 추가 append

a = [1, 1] 일 때 마지막에 5를 덧붙이고싶다(추가)

 

a.append(5) 라고하면 리스트 a는 [1, 1, 5] 가 된다.

 

이중 리스트에는 이렇게 접근하면 된다.

 

삼중 리스트 append

 

리스트 요소 삽입 insert

a = [2, 1, 5, 3, 4] 일 때

 

a.insert(1, 10) 이면 인덱스1 자리에 요소 10을 넣는다는 말이다.

a = [2, 10, 1, 5, 3, 4] 이 된다.

a.insert(a, b) 이면 a자리에 b의 값을 넣는다.

 

리스트 정렬 sort

a = [2, 1, 5, 3, 4] 일때 1, 2, 3, 4, 5 로 정렬을 하고싶다.

a.sort() 를 하면 [1, 2, 3, 4, 5] 이 된다.

 

 

리스트 뒤집기 reverse

a = ['a', 'c', 'b'] 일 때 

a.reverse() 을 하면  ['b', 'c', 'a'] 가 된다.

 

 

요소의 위치 알려주는 index

a = ['a', 'c', 'b'] 일 때a.index('c') 하면 리스트 a에 있는 'c' 의 위치(인덱스)를 알려준다.그래서 1이 나온다.

 

찾는 문자가 없을 경우 에러가 난다.

 

요소의 위치 알려주는 find

a = ['a', 'c', 'b'] 일 때a.find('c') 하면 리스트 a에 있는 'c' 의 위치(인덱스)를 알려준다.그래서 1이 나온다.

찾는 문자가 없을 경우 -1을 반환

 

리스트 요소 제거 remove

a.remove(3) 은 a라는 리스트에서 첫번째로 나오는 3을 삭제한다는 뜻이다.

 

a=[1,2,3,1,2,3] 이면

첫번째에 있던 3만 제거되고 두번째에 있던 3은 그대로이다.

 

a.remove(3) 을 다시하면 나머지 3도 제거된다.

 

 

리스트 요소 끄집어냄 pop

a=[1,2,3,1,2,3] 일 때

a.pop() 을 하면 [1,2,3,1,2] 가 된다.

 

리스트의 맨 마지막요소를 꺼내고 그 요소는 삭제된다.

 

a.pop(1) 이면 리스트의 1번째 요소를 꺼내고 그 요소는 삭제한다.

 

 

 

리스트에 포함된 요소 개수 세기 count

a = [1, 2, 3] 이면

a.count(2) 하면 리스트 a 안에 2가 몇개있는지 알려준다.

여기서는 1개 있다는 것을 알려줌

 

 

리스트 확장 extend

a = [1,2,3] 일때

a.extend([4,5]) 하면 a는 [1,2,3,4,5] 가된다.

extend() 의 () 안은 리스트만 올 수 있다. 리스트에 리스트가 더해져 확장이 된다.

a += [6,7] 하면 [1,2,3,4,5,6,7] 로 extend 와 동일하다.