[Python] 리스트 자료형

David Kim·2022년 10월 24일
0

Python

목록 보기
5/11

리스트 자료형이란?

리스트 자료형은 [ ] 대괄호 안으로 값을 넣어 문자열을 표현하는 방법이다.
예를 들어 아래처럼 [ ] 안에 숫자랑 ,를 사용하여 구분해주면 된다.

>>> 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에 무조건 리스트만 올 수 있다❗️

profile
people rarely succeed unless they have fun in what they are doing

0개의 댓글