리스트 자료형은 [ ] 대괄호 안으로 값을 넣어 문자열을 표현하는 방법이다.
예를 들어 아래처럼 [ ] 안에 숫자랑 ,를 사용하여 구분해주면 된다.
>>> a = [ ] >>> b = [1, 2, 3] >>> c = ['my', 'name', 'is'] >>> d = [1, 2, 'my', 'name'] >>> e = [1, 2, ['my', 'name']]
이런식으로 표현이 가능하다 숫자나 문자열로 요솟값을 가질 수 있으며 심지어
예시 a 같이 공백이 있어도 리스트에 포함된다. 조금 특이한 점은 예시 e인데
e 같은 경우 [ ]안에 또 [ ]가 있는데 이또한 리스트에 포함이 된다.
리스트 인덱싱
>>> a = [1, 2, 3] >>> a [1, 2, 3] >>> a[0] 1 >>> a[0] + a[2] 4 >>> a[-1] 3
리스트라고 해서 이전에 배웠던 인덱싱과 크게 다를바가 없다 진짜 대괄호안에
있냐 없냐 차이지 기본적인 코드는 다 똑같다. 하지만 리스트는 이중으로
만들수도 있다 아래 예시와 같이
>>> a = [1, 2, 3, ['a', 'b', 'c']] >>> a[3] ['a', 'b', 'c'] >>> a[-1] ['a', 'b', 'c']
위와 같이 ['a', 'b', 'c']는 [ ]안에 포함 전체를 하나의 리스트로 취급한다.
고로 a[3]이나 a[-1]를 입력해도 둘이 똑같이 3번째열이라 같은 결과가 나온다.
그렇다면 ['a', 'b', 'c'] 안에서 'a'만 끄집어 내고 싶다면 어떻게 해야할까?
>>> a[-1][0] 'a'
a[-1]이 이미 ['a', 'b', 'c'] 리스트 안에 있는 것은 말했고 그 리스트
안의 첫 번째 요소를 불러주기 위해 그뒤에 [0]을 붙였다.
좀더 심화과정으로 삼중 리스트를 한번 보도록 하자
>>> a = [1, 2, ['a', 'b', ['복잡', '하지롱']]] >>> a[2][2][0] '복잡'
위와 같이 [ ] 안의 순서대로 입력해주면 '복잡'만 빼내 올 수 있다.
리스트의 슬라이싱
>>> a = [1, 2, 3, 4, 5] >>> a[0:2] [1, 2]
리스트형 슬라이싱도 문자열과 크게 다를것이 없다 여기서 a[0:2]를 해석
하자면 0번째 이상부터 2번째 미만 즉 1은 포함하되 3은 포함을 안시키니
딱 숫자 2 이자 1번째 문자만 나온다.
좀만 꼬아서 그럼 이중 리스트 있을 경우 슬라이싱을 해보자
>>> a = [1, 2, 3, ['a', 'b', 'c'], 4, 5] >>> a[3][:2] ['a', 'b']
a[3][:2] 이코드를 해석을 해보자면 a에 있는 3번째 리스트에서 0번째 부터
첫번째 수까지만 나타내라 이 뜻이다 고로 결과에 따라 'a'랑 'b'가 나온다.
>>> a = [1, 2, 3] >>> len(a) 3
이 역시도 len 함수를 사용하면 리스트의 길이를 구할 수 있다.
❗️여기서 주의 해야할점❗️
리스트 연산 오류가 나올 수 있는데 어떤 경우냐 하면
>>> a = [1, 2, 3] >>> a[2] + "hi"
이럴 경우 3hi라고 생각을 할텐데 이려면 결과는 오류가 뜰 것이다. 왜???
정수와 문자열은 서로 더 할수 없으니 숫자 '3'을 문자열로 바꿔줘야한다.
>>> str(a[2]) + "hi"
이런식으로 str 함수를 사용하여 정수나 실수를 문자열 형태로 바꿔줘야한다.
리스트 값 수정하기
>>> a = [1, 2, 3] >>> a[2] = 4 >>> a [1, 2, 4]
del 함수 사용해 리스트 요소 삭제
>>> a = [1, 2, 3] >>> del a[1] >>> a [1, 3]
del 함수는 파이썬 자체적으로 가지고 있는 삭제 함수이다 이것을 del 객체라고 한다.
🤓객체란 파이썬에서 사용되는 모든 자료형이다🤓
>>> a = [1, 2, 3, 4, 5] >>> del a[2:] >>> a [1, 2]
위는 인덱싱을 응용하여 2번째열 부터 나머지를 다 삭제하라고 친거다. 그리고
리스트 삭제는 del 말고도 remove나 pop 함수를 이용 할 수도 있다.
리스트에 요소 추가(Append)
>>> a = [1, 2, 3] >>> a.append(4) >>> a [1, 2, 3, 4] >>> a.append([5, 6]) >>> a [1, 2, 3, 4, [5, 6]]
리스트 정렬(sort)
>>> a = [1, 4, 3, 2] >>> a.sort() >>> a [1, 2, 3, 4] >>> a = ['d', 'a', 'c', 'b'] >>> a.sort() >>> a ['a', 'b', 'c', 'd']
리스트 뒤집기(reverse)
>>> a = ['a','c', 'b'] >>> a.reverse() >>> a ['b', 'c', 'a'] ❗️reverse는 순서대로 정렬후 역순으로 하는게 아니라 리스트 그 자체의 순서를 역순으로 정렬한다❗️
위치 반환(index)
>>> a = [1, 2, 3] >>> a.index(3) ⬅️ 3은 리스트의 a의 세 번째(a[2]) 요소 2 >>> a.index(1) ⬅️ 1은 리스트의 a의 첫 번째(a[0]) 요소 0
리스트 요소 삽입(insert)
>>> a = [1, 2, 3] >>> a.inser(0, 4) ⬅️ 0 번째 자리(a[0])에 4를 삽입하라 >>> a [4, 1, 2, 3]
리스트 요소 제거(remove)
>>> a = [1, 2, 3, 1, 2, 3] >>> a.remove(3) >>> a [1, 2, 1, 2, 3] ⬅️ 첫 번째로 나오는 숫자 3이 삭제 >>> a.remove(3) >>> a [1, 2, 1, 2] ⬅️ 그 이후에 남아 있는 3 삭제
리스트 요소 끄집어내기(pop)
>>> a = [1, 2, 3] >>> a.pop() ⬅️ 설정을 안하고 빈공간일 경우 맨마지막을 삭제한다. 3 >>> a [1, 2] >>> a.pop(1) ⬅️ 1번열(a[1])를 삭제하라 2 >>> a [1, 3]
리스트에 포함된 요소 x의 개수 세기(count)
>>> a = [1, 2, 3, 1] >>> a.count(1) >>> 2
리스트 확장(extend)
>>> a = [1, 2, 3] >>> a.extend([4, 5]) >>> a [1, 2, 3, 4, 5] >>> b = [6, 7] >>> a.exntend(b) >>> a [1, 2, 3, 4, 5]
❗️extend(x) 함수는 x에 무조건 리스트만 올 수 있다❗️