05강. [Python]리스트

2025. 2. 1. 20:53·Python/Foundation

리스트란?

리스트는 한 번에 여러 값을 넣을 수 있는 파이썬의 자료형이다.

추가, 수정, 삭제가 가능하고 인덱싱, 슬라이싱이 가능하는 특징이 있다.

 

리스트의 기본 사용

먼저 빈 리스트를 생성하는 방법에 대해 알아보자.

빈 리스트는 대괄호 또는 list함수를 통해 생성할 수 있다.

# 빈 리스트 생성하기
li1 = []
li2 = list()

print(li1, type(li1))
print(li2, type(li2))
[] <class 'list'>
[] <class 'list'>

 

그다음으로는 리스트 안에 값을 넣어보자.

리스트는 밑 코드처럼 대괄호를 사용하며 대괄호 안에 콤마로 값을 구분하여 넣어준다.

# 리스트에 값 넣기
li1 = [1, 3.14, 'Hello', True]

print(li1, type(li1))
[1, 3.14, 'Hello', True] <class 'list'>

 

만약 리스트에 일정한 규칙이 있는 숫자를 넣고 싶다면 range함수를 사용할 수 있다.

range함수의 괄호에는 (시작값 : 마지막 값 : 스텝값)이 들어가며 시작값부터 (마지막 값 -1)까지 스텝값만큼 뛰어넘으며 수를 생성한다.

# range()함수로 리스트 만들기
li = list(range(1, 10, 2))
print(li, type(li))
[1, 3, 5, 7, 9] <class 'list'>

 

인덱싱과 슬라이싱

이 개념은 뒤에 나올 튜플에도 똑같이 적용되고 나중에 많이 사용되기 때문에 정말 중요하다.

리스트와 튜플은 여러 값이 들어있는데 맨 왼쪽부터 0번으로 시작해 마지막 값까지 번호가 매겨진다.

인덱스 번호

이렇게 매겨진 번호를 통해 특정한 값을 얻는 것이 인덱싱, 범위를 정해서 원하는 값들을 얻는 것이 슬라이싱이다.

인덱싱은 리스트명[인덱스번호]로 할 수 있고 슬라이싱은 리스트명[시작값:마지막값:스텝값]으로 할 수 있다.

# 인덱싱
li = list(range(10))
print(li)

print(li1[0])
print(li[4])
print(li[8])
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
1
4
8

# 슬라이싱
li = list(range(10))
print(li)

print(li[3:8:2]) 
print(li[:8:2]) # 처음부터 시작이면 시작값 생략 가능
print(li[3::2]) # 마지막 값이 끝값이면 마지막 값 생략 가능
print(li[3:8]) # 스텝값이 1이면 생력가능
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[3, 5, 7]
[0, 2, 4, 6]
[3, 5, 7, 9]
[3, 4, 5, 6, 7]

 

리스트의 함수들

리스트는 여러 값들이 모여있기 때문에 특정한 값을 추가, 수정, 삭제할 때 사용하는 함수들이 따로 있다.

밑에서는 그러한 함수들을 소개하려고 한다.

 

1. 리스트 요소에 대한 함수들

처음으로 소개할 함수는 요소의 개수를 반환하는 함수이다.

# len() : 요소 개수 반환
li = [1, 2, 3, 4, 5]
print(len(li))
5

다음으로는 요소들의 합을 반환하는 함수이다.

# sum() : 요소들의 합 반환
li = [1, 2, 3.14, 4, 5]
print(sum(li))
15.14

다음은 특정 요소의 인덱스 번호를 반환하는 함수이다.

# index() : 특정 요소의 인덱스 번호 반환
li = [1, 2, 3, 4, 5]
print(li.index(2))
print(li.index(4))
1
3

다음은 특정 요소의 개수를 반환하는 함수이다.

# count() : 특정 요소의 개수 반환
li = [1, 1, 1, 3, 3]
print(li.count(1))
print(li.count(3))
3
2

다음은 in 연산자를 사용하여 특정값이 요소들 중 있는지 알아본다.

# in : 요소들 중 특정값의 존재여부를 논리형으로 반환
li = [1, 2, 3, 4, 5]
print(3 in li)
print(6 in li)

print(2 not in li)
print(8 not in li)
True
False
False
True

다음은 요소들 중 최대값과 최소값을 반환하는 함수에 대해 알아본다.

# max() : 요소 중 가장 큰 값을 반환
li = [1, 2, 3, 4, 5]
print(max(li))
5

 

# min() : 요소 중 가장 작은 값을 반환
li = [1, 2, 3, 4, 5]
print(min(li))
1

 

 

2. 리스트 추가 함수

처음으로 알아볼 append함수는 리스트의 마지막에 요소를 추가한다.

# append() : 리스트의 마지막에 요소를 추가
li = [1, 2, 3, 4, 5]
li.append(6)
print(li)
[1, 2, 3, 4, 5, 6]

다음은 insert함수인데 이 함수는 원하는 위치에 원하는 값을 넣을 수 있다.

insert(인덱스번호, 값)으로 사용한다.

# insert() : 리스트의 원하는 곳에 원하는 값을 추가
li = [1, 2, 3, 4, 5]
li.insert(2, 6)
print(li)
[1, 2, 6, 3, 4, 5]

다음은 extend함수로 한 리스트를 다른 리스트에 연결한다.

+연산자로도 똑같은 결과를 낼 수 있다.

# extend() : 한 리스트에 다른 리스트를 연결
li1 = [1, 2, 3, 4]
li2 = [5, 6, 7, 8]

li3 = li1 + li2
li1.extend(li2)

print(li1)
print(li3)
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]

 

3. 리스트 삭제 함수

pop함수와 del은 원하는 값을 삭제할 수 있으며 pop함수의 괄호 안이 비어있으면 마지막 요소를 삭제한다.

# pop(), del[] : 원하는 요소를 삭제
li = [1, 2, 3, 4, 5]
li.pop() # 마지막 값 삭제
print(li)

li = [1, 2, 3, 4, 5]
li.pop(3) # 인덱스번호가 3인 요소 삭제
print(li)

li = [1, 2, 3, 4, 5]
del li[3]
print(li) # pop(3)과 같은 역할로 인덱스번호가 3인 요소 삭제
[1, 2, 3, 4]
[1, 2, 3, 5]
[1, 2, 3, 5]

다음은 원하는 값을 찾아 삭제할 수 있는 remove함수이며 원하는 값이 여러 개이면 앞에 값을 우선적으로 삭제한다.

# remove() : 원하는 값을 찾아 삭제 가능, 값이 여러개일 경우 앞에 값을 우선 삭제
li = [1, 2, 3, 4, 5]
li.remove(3)
print(li)

li = [1, 1, 1, 3, 4]
li.remove(1) # 값이 여러개일 경우 앞에 값을 삭제
print(li)
[1, 2, 4, 5]
[1, 1, 3, 4]

다음으로는 모든 요소를 삭제하는 clear함수이다.

# clear() : 리스트의 모든 요소를 삭제
li = [1, 2, 3, 4, 5]
li.clear()
print(li)
[]

 

4. 리스트 정렬 함수

리스트는 수정이 가능하기 때문에 정렬 또한 가능하다.

정렬은 sort와 sorted함수로 가능하고 기본적으로는 오름차순, reverse = True로 설정하면 내림차순으로 정렬된다.

# sort : 리스트를 크기 순서대로 정렬한다.
li = [2, 1, 4, 8, 7]
li.sort()
print(li)

# 괄호 안에 reverse = True로 설정하면 내림차순이 된다.
li = [2, 1, 4, 8, 7]
li.sort(reverse = True)
print(li)
[1, 2, 4, 7, 8]
[8, 7, 4, 2, 1]

 

# sorted() : 리스트를 크기 순서대로 정렬한다.
li = [2, 1, 4, 8, 7]
print(sorted(li))

# 괄호 안에 reverse = True로 설정하면 내림차순이 된다.
li = [2, 1, 4, 8, 7]
print(sorted(li, reverse = True))
[1, 2, 4, 7, 8]
[8, 7, 4, 2, 1]

 

결론

이 글에서 알아본 리스트와 다음에 배울 튜플, 세트, 딕셔너리는 여러 값을 저장할 수 있는 자료형으로 매우 많이 사용된다.

그리고 이러한 자료형에 사용되는 함수들은 정말 많이 사용되니 기본적으로 알고 있자.

'Python > Foundation' 카테고리의 다른 글

07강. [Python]딕셔너리  (0) 2025.02.01
06강. [Python]튜플  (0) 2025.02.01
04강. [Python]연산자  (0) 2025.01.31
03강. [Python]자료형  (1) 2025.01.31
02강. [Python]변수  (0) 2025.01.31
'Python/Foundation' 카테고리의 다른 글
  • 07강. [Python]딕셔너리
  • 06강. [Python]튜플
  • 04강. [Python]연산자
  • 03강. [Python]자료형
C0de-Log
C0de-Log
c0de-log 님의 블로그 입니다.
  • C0de-Log
    C0de-Log
    C0de-Log
  • 전체
    오늘
    어제
    • 분류 전체보기 (18)
      • C (0)
      • Python (17)
        • Foundation (14)
        • Library (3)
      • ML (0)
      • 공모전 & 자격증 (1)
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    튜플
    사용자 정의 함수
    Pandas
    자료형
    코드블록
    클래스
    람다
    판다스
    numpy
    함수
    들여쓰기
    반복문
    변수
    조건문
    세트
    CLASS
    딕셔너리
    리스트
    Python
    dictionary
    합격
    ADSP
    tuple
    폴라스
    넘파이
    연산자
    제어문
    polars
    lambda
    주석
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
C0de-Log
05강. [Python]리스트
상단으로

티스토리툴바