[Python] 리스트 자료형
리스트자료형 정리...
리스트를 사용하면 요소를 여러 개 담을 수 있다.
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 와 동일하다.