파이썬 리스트(list) 사용방법 총정리! - 조회・추가・삽입・삭제・찾기・정렬・중복제거 등

2021. 7. 5. 06:10

프로그램은 여러가지 연산을 하면서 동작한다. 이러한 연산의 결과를 저장하기 위해 변수를 지정하고, 변수에 중간과정이나 결과를 저장하게 된다. 이러한 변수의 유형을 자료형이라고 한다. 파이썬에는 데이터 분석을 위해 ndarray나 데이터프레임 같은 자료형을 사용한다. 이는 numpy와 pandas 모듈에서 제공하는 자료형이다. 이외에도 파이썬에서 기본적으로 제공하는 자료형도 있다. 리스트, 딕셔너리, 튜플 등이 그것이다.

오늘은 파이썬의 자료형 중 하나인 리스트에 대해서 알아보도록 하겠다.

 

파이썬 리스트

 

 

1. 리스트(LIST)란?

리스트는 배열과 유사한 구조이다. 값이 나열되어 있고, 리스트 안에 리스트가 들어갈 수도 있다. 즉, 리스트 안에는 서로 다른 타입의 값들을 사용할 수 있다. 테스트를 해보니 튜플, 리스트, 딕셔너리, 셋트 모두 서로 다른 타입의 값을 사용할 수 있었다.

파이썬을 하다보면 리스트를 많이 사용하게 되는데, for문을 돌리기 좋기 때문이다. 리스트를 정의하기 위해서는 아래와 같이 대괄화를 이용한다.

num = [1, 2, 3]

 

 

2. 특정 위치의 리스트 값 조회하기

리스트는 순서를 가지고 있는 자료구조이다. 그래서 인덱스(자리 번호)를 가지고 있다. 특정 위치의 값을 조회하거나 사용하기 위해서는, 리스트명 뒤에 원하는 위치의 숫자값을 넣어서 사용한다. num[i]와 같이 말이다.

시작값은 0부터이다. 리스트에 값을 더하거나 문자열로 변환 할 때도, 인덱싱을 통해 아래와 같이 값을 더할 수 있다.

print(num[0])
[Out]: 1

num[0]+=1
print(num[0])
[Out]: 2

num[0] = str(num[0])
[Out]: '2'

 

 

3. 리스트에 값 추가하기

리스트 뒤에 값을 추가하기 위해서는 append()나 insert()함수를 이용한다. insert함수는 아래와 같이 원하는 위치에 값을 넣을 수 있다. 더하기 연산자를 이용해서 리스트에 값을 추가할 수도 있다.

num.append(4)
num+=[6]
num.insert(2,3)  # 리스트의 2의 위치에 3이라는 값을 넣는다.

 

하나의 값이 아니라 리스트끼리 합칠 때는 extend()함수를 이용해도 되고, +를 사용해도 된다.

next = [7, 8]
num.extend(next)
num + next

 

필자가 리스트를 사용할 때 좀 헷갈리는 것은 [num, next]와 같이 사용할 때이다. 이 경우에는 리스트가 합쳐지는 게 아니라 각각의 리스트가 저장된다. 2차원의 리스트가 된 것이다.

print([num, next])
[Out]: [ [1, 2, 3, 4, 1, 5, 6, 7, 8], [7, 8] ]

 

 

4. 특정값 찾기

특정값이 어느 위치에 있는지 확인하고 싶다면, 인덱스 함수를 사용하면 된다. index(값)만 입력해도 되고, index(값, 시작위치)로 입력해도 된다. 여러 개 있더라도 처음 찾은 값의 위치만 반환한다. 모든 값의 위치를 다 반환하는 함수는 없는 것으로 안다.
파이썬 리스트의 find기능으로 보면 되겠다.

num.index(3)

 

 

5. 특정값의 갯수를 세거나 뽑아내기

특정값의 갯수를 세기 위해서는 count()를 사용하고, pop()을 통해 특정 위치의 값을 뽑아낼 수도 있다. 뽑아낸다는 것은 해당 위치의 값이 나오고, 그 자리는 지워진다는 이야기이다.

num.count(3)
num.pop()

 

 

6. 특정값을 삭제하기

remove()를 통해서 값을 삭제할 수도 있다. 동일한 값이 있을 경우에는 제일 앞의 하나의 값만 삭제된다.

num.remove()

 

 

7. 리스트 정렬하기

정렬을 위한 sort()와 reverse()함수도 제공한다.

num.sort()
num.reverse()

 

 

8. 리스트 중복제거하기

리스트의 중복을 제공하기 위해서는 어떻게 해야할까? 리스트는 중복을 허용하지만, 다른 자료형인 set은 중복을 허용하지 않는다. 그래서 아래와 같이 해서 쉽게 중복을 제거할 수 있다.

list(set(num))

 

 

리스트의 for문을 적용할 때 일반적인 for문의 문법을 사용해도 되지만, 이를 한 줄로 작성할 수도 있다. 한 줄의 코드로 작성하면 속도도 빠르고 코드도 간결해서 이해하기 좋다.  한 줄로 for문을 이용해서 list를 생성 또는 수정하는 방법에 대해서는 다음에 다뤄보도록 하겠다.

 

 

오늘은 이렇게 파이썬 자료형인 list에 대해서 알아보았다. 파이썬은 사용하기 쉽고, 쓸모가 많아 자주 쓰게 되는 자료형이다. 매번 문법이 헷갈린다며 코딩이 재미 없어진다. 이번 기회에 잘 익혀워 자유롭게 사용하면 좋을 듯 하다.

리스트의 값검사, 길이별 정렬, 음수 인덱싱 등에 대해서 추가로 다음 포스팅에서 알아보도록 하겠다.

 

댓글()