세조목

PYTHON 정리(점프투파이썬 - 리스트 자료형)(23.12.31) 본문

데이터 분석 공부/Python

PYTHON 정리(점프투파이썬 - 리스트 자료형)(23.12.31)

세조목 2023. 12. 31. 16:02
  • 본 내용들은 PYTHON을 공부하면서 차후 제가 복습하기위해 정리해놓은 것으로 제가 새롭게 알게된 내용들만을 정리하였습니다. 또한 배움이 부족하여 미처 다 파악하지 못한 부분들도 많으니 혹시나 이 포스팅을 보시는 분들께서는 다른 포스팅, 도서, 강의도 함께 참고하시기 바라겠습니다.

 

1. 리스트 생성 방법

변수 = ["문자열"(or 숫자)]
 
리스트 안에는 문자열, 숫자, 리스트 뿐만 아니라 어떠한 자료형이든 모두 포함시킬 수 있다.

a=[]
a=["pig", "apple", "age"]
a=[3243, 53214, 376, 98]
a=["pig", 3243, "apple", 98, ["moment", "tell", "swat"]]

 

2. 인덱싱

인덱싱 방법 역시 문자열과 동일하게 대괄호를 사용해주면 된다.

a = ["list", "food", "pig", "age"]
a[0]
>>> 'list'

리스트 안에 있는 리스트를 인덱싱하고싶을때는 어떻게 하면 될까?

a=["pig", 3243, "apple", 98, ["moment", "tell", "swat"]]
a[-1][0]
>>> 'moment'

리스트 안에 있는 리스트의 위치를 인덱싱해주고,
그 리스트 안에서 찾고자 하는 문자열이 있는 위치를 입력해주면 된다.
예시에서의 경우 리스트 안에 리스트가 4번째(or -1번째)에 위치해있고,
만약 'moment'라는 문자열을 인덱싱하고싶을때 'moment'가 0번째에 위치해있으므로
[0]을 적어주면된다.
 ※ python에서는 항상 0부터 시작한다는 것을 절대 잊어서는 안 된다.
 

3. 슬라이싱

문자열과 마찬가지로 슬라이싱도 가능하다.

a = [3, 5, 3, 6, 8, 0]
a[0:3]
>>> [3, 5, 3]

a[3:5]
>>> [6,8]

a[:4]
>>> [3, 5, 3, 6]

a[3:]
>>> [6, 8, 0]

콜론 좌측에 숫자를 넣지 않을 경우 처음부터 출력,
콜론 우측에 숫자를 넣지 않을 경우 끝가지 출력하라는 의미이다.
 ※ 콜론 우측에 있는 숫자는 '해당 숫자-1'까지 인덱싱한다는 것을 기억해야한다.
 

4. 연산

리스트는 연산이 가능하다.
더할수 있고 곱할 수 있다.

# 더하기
a=[1, 2, 3, 4]
b=[6, 5, 4, 3]
a+b
>>> [1, 2, 3, 4, 6, 5, 4, 3]

# 곱하기
a=[1, 2, 3, 4]
a * 3
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]

 

5. 길이 구하기

len 함수를 사용하면 리스트의 길이를 구할 수 있다.

a=["pig", "water", "fire"]
len(a)
>>> 3

len함수는 리스트에서뿐만아니라 딕셔너리와 튜플에서도 사용할 수 있다.
 

6. 리스트 수정

리스트 값은 수정이 가능하다.

a = [34, 165, "work"]
a[2] = 33
a
>>> [34, 165, 33]

문자열 파트에서 문자열은 자체의 값을 변경할 수 없는 immutable 자료형이라고 했다.
다시 말해 내장함수로 문자열을 바꿔줬다면 기존 변수명에 다시 한번 저장을 해줘야
문자열이 영구적으로 수정됐다고 볼 수 있는 것이다.
그런데 리스트에서의 경우 '인덱싱 = 바꾸려는 값'을 해주고 변수를 입력하면
리스트의 값이 바껴있는걸 확인할 수 있다.
 

7. 리스트 요소 삭제하기

리스트 요소를 삭제할 때는 del 함수를 사용하면된다.

a = [3, 2, 62, 1]
del a[3]
a
>>> [3, 2, 62]

del a[1:]
a
>>> [3]

위 예시에서처럼 인덱싱 앞에 del 을 넣어주면 된다.
인덱싱을 활용해서 여러 값을 삭제할 수도 있다.
 

8. 리스트 관련 함수

  1. append
  2. sort
  3. reverse
  4. index
  5. insert
  6. remove
  7. pop
  8. count
  9. extend

● append

append는 '덧붙이다, 첨부하다'라는 뜻을 가지고 있다.
뜻 그대로 리스트에 새로운 값을 추가해주는 함수이다.

# 문자열
a = [3, 2, 62, 1]
a.append("cup")
a
>>> [3, 2, 62, 1 "cup"]

# 숫자
a.append(5)
a
>>> [3, 2, 62, 1, 5]

# 리스트
a.append([53, 12, 34])
a
>>> [3, 2, 62, 1, [53, 12, 34]]

이렇게 문자열, 숫자, 리스트 모두 추가할 수 있다.
 

● sort

sort 함수는 스트의 요소들을 오름차순으로 정렬해주는 함수다.

# 문자열
a = ["love", "cup", "wiki"]
a.sort()
a
>>> ["cup", "love", "wiki"]

# 숫자
a = [6, 3, 23, 69, 1, 8]
a.sort()
a
>>> [1, 3, 6, 8, 23, 69]

 

● reverse

reverse는 반전이라는 뜻 그대로 리스트 요소를 뒤집어준다.

# 문자열
a = ["love", "cup", "wiki"]
a.reverse()
a
>>> ["wiki", "cup", "love"]

# 숫자
a = [6, 3, 23, 69, 1, 8]
a.reverse()
a
>>> [8, 1, 69, 23, 3, 6]

이 때 리스트가 정렬되고, 정렬된 값이 reverse되는 것이 아니라 처음 리스트 값 그대로 reverse되는데
만약 정렬시키고 reverse하고싶다면 sort함수를 적용시킨다음 reverse함수를 한 번 더 사용해야한다.
 

● index

인덱스는 특정 요소의 위치를 찾고자 할 때 사용하는 함수다.

a = ["love", "cup", "wiki"]
a.index("cup")
>>> 1

a.index(3)
Traceback (most recent call last):
  <ipython-input-11-dcdbaf3cf2a0> in <cell line: 2>()
ValueError: 3 is not in list

index( ) 괄호 안에 순서를 찾고자하는 요소를 넣어주면
몇번째 순서에 있는지 확인할 수 있다.
만약 리스트에 없는 값을 입력하면 오류 메시지가 출력된다.
 

● insert

insert는 insert(a, b)로 구성되어있으며 a번째 위치에 b를 삽입하는 함수이다.

a = [8, 2, 9]
a.insert(2, 88)
a
>>> [8, 2, 88, 9]

위 예시를 살펴보면 a인자에 2가, b인자에 88이 들어가있기때문에
리스트에서 두번째 자리에 숫자 88을 넣어주게 되므로
리스트가 [8, 2, 88, 9]가 된다.
 

● remove

remove(x)는 리스트에서 가장 첫번째로 나오는 x를 제거하는 함수다.

a = [8, 2, 9, 55, 2, 12, 3]
a.remove(2)
a
>>> [8, 9, 55, 2, 12, 3]

a라는 리스트에서 첫번째 자리에 숫자 2가 가장 먼저 위치해있기때문에
첫번째 자리의 숫자 2를 제외한 나머지 요소들이 들어있는 리스트가 출력된다.
 

● pop

pop의 뜻은 튀어오르다라는 뜻으로 리스트의 가장 마지막 요소만 출력하고 리스트에서 해당 값을 제외시킨다.

a = ["waki", 38, "split", "yes", 111]
a.pop()
>>> 111

a
>>> ["waki", 38, "split", "yes"]

특정 순번에 위치한 값을 출력하고 나머지 값은 제거할수도 있다.

a = ["waki", 38, "split", "yes", 111]
a.pop(3)
>>> "yes"

a
>>> ["waki", 38, "split", 111]

위 예시에서의 경우 3번째 자리에 위치한 값을 pop시킨다는 말인데
세번째 자리의 위치한 값이 "yes"이기 때문에 "yes"를 출력하고
a 리스트에서는 값 "yes"를 제외한 나머지 값들만이 담긴 리스트가 출력된다.
 

● count

count 함수는 세아리는 함수이다.
무엇을 세아릴까?
count( ) 괄호 안에 있는 값이 몇 번 들어있는지를 세아린다.

a = [6, 8, 212, 11, 8, 98, 11, 8]
a.count(8)
>>> 2

 ● extend

extend는 리스트를 확장시키는 함수이다.
extend( ) 중괄호에 들어가는 인자를 기존 리스트에 추가시켜준다.

a = [8, 2, 3]
a.extend([3, 9])
a
>>> [8, 2, 3, 3, 9]