티스토리 뷰
파이썬 리스트는 리스트, 튜플, 딕셔너리 등과 같이 자주 사용하는 자료구조 중 하나입니다. 이번에는 리스트 자료구조에 대해 확인해보려고 합니다. 리스트 자료구조의 메서드와 컴프리헨션에 대해 알아보겠습니다.
파이썬 리스트 자료구조
리스트란?
리스트 메서드 (내장 함수)
리스트 컴프리헨션
리스트란?
리스트는 하나의 변수에 여러가지 자료를 묶어서 정리하는 자료구조 형태입니다. 예를 들어, 학생 한 명의 성적표를 변수화 한다고 했을 때 국어, 영어, 수학 점수를 변수화하려면 3개의 변수가 필요합니다. 하지만 리스트를 사용하면 [국어, 영어, 수학] 점수를 하나의 변수로 저장할 수 있습니다.
파이썬에서 리스트 자료구조는 대괄호 ( [ , ] )로 묶어서 표현합니다.
그리고 리스트 요소의 index는 0번부터 시작합니다. 예를 들어, [ 13, 465, 32, 56] 이라는 리스트가 생성되었을 때, 리스트의 index는 0번으로 시작해서 3번까지 총 4개의 index를 가집니다. 리스트의 index가 1로 시작하지 않는다는 점 체크하시기 바랍니다. 그리고 index에 접근할 때, 파이썬에서는 음수 index도 사용이 가능한데, 순서는 가장 오른쪽 부터 -1을 사용하는 방식입니다.
list | 13 | 465 | 32 | 56 |
index | 0 | 1 | 2 | 3 |
index (reverse) | -4 | -3 | -2 | -1 |
리스트 메서드 (내장 함수)
파이썬에서 기본적으로 제공하는 리스트 메서드가 있습니다. 리스트 내 데이터를 정렬하는 것부터 값을 추가하고 제거하는 것 등의 다양한 내장 함수를 제공하므로, 이에 대해 하나씩 확인해 보겠습니다.
- list_name.append(item) : 리스트에 새로운 item을 추가, 리스트 요소 가장 마지막에 저장됩니다
- list_name.remove(item) : 리스트 내 item을 삭제
- list_name.insert(index,item) : 리스트에 item을 추가, index는 리스트 내 어느 위치에 삽입할 지 지정이 가능합니다.
- list_name.sort() : list를 데이터를 오름차순, 내림차순으로 정렬가능
- list_name.reverse() : 리스트 index를 뒤집어 저장합니다.
- list_name.count(item) : 리스트 내에서 item이 등장하는 개수를 반환
- list_name.copy() : 리스트를 얕은 복사로 copy
lname = ['elf', 'apple', 'devil' ,'book', 'god', 'crab']
lname.append('NEW')
#>>> ['elf', 'apple', 'devil' ,'book', 'god', 'crab', 'NEW']
lname.insert(1,'TEMP')
#>>> ['elf', 'TEMP', 'apple', 'devil' ,'book', 'god', 'crab', 'NEW']
lname.sort()
#>>> ['NEW', 'TEMP', 'apple', 'book', 'crab', 'devil', 'elf', 'god']
lname.sort(reverse=True)
#>>> ['god', 'elf', 'devil', 'crab', 'book', 'apple', 'TEMP', 'NEW']
파이썬에서 자주 사용하는 리스트 메서드는 위와 같습니다. 특히 sort함수는 오름차순과 내림차순으로 정렬이가능한데, sort함수 내에서 reverse옵션을 내림차순으로 지정할 경우 True옵션을 따로 지정해주어야 합니다.
리스트 컴프리헨션
리스트 컴프리헨션은 파이썬스러운 코드를 보여주는 가장 대표적인 기능입니다. 리스트 컴프리헨션을 이용하면 리스트의 각 요소들이 어떠한 연산을 통해서 만들어질 때, 그것을 리스트 내부에서 정의하여 생성할 수 있습니다. 그만큼 코드는 직관적이고 간결하며 이해하기 쉬워집니다. 리스트 컴프리헨션의 다양한 사용방법을 아래에서 확인해보도록 하겠습니다.
#1
list_1 = [x for x in range(10)]
print(list_1)
#2
list_2 = [x for x in range(10) if x%2 != 0 ]
print(list_2)
#3
list_3 = []
for i in range(10) :
if i%2 != 0 :
list_3.append(i)
print(list_3)
#1 실행결과
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#2 실행결과
[1, 3, 5, 7, 9]
#3 실행결과
[1, 3, 5, 7, 9]
위 1과 2의 실행결과는 중요하지 않습니다. list_1과 list_2가 생성되는 그 과정을 자세히 살펴보시기 바랍니다.
- #1의 경우, x라는 요소를 for문을 통해 0부터 10번 반복하여 list_1의 요소로 삽입하였습니다.
- #2의 경우, #1의 경우에서 조건문을 추가하여 짝수를 제외하여 list_2의 요소로 삽입하였습니다.
즉, #3의 코드를 완성하기 위해 사용한 문법보다 #2를 완성하기 위한 문법이 훨씬 더 간결합니다. 이와 같이 리스트 컴프리헨션을 사용하여 파이썬 코드를 간결하게 만들 수 있습니다.
'소프트웨어 > 파이썬' 카테고리의 다른 글
파이썬 자료구조 튜플, 리스트, 집합 (0) | 2022.03.22 |
---|---|
파이썬 문자열 메서드로 텍스트 처리 (0) | 2022.03.21 |
파이썬 조건문 사용방법 예제로 알아보기 (0) | 2022.03.19 |
파이썬 반복문 다른언어와 비교해보기 (0) | 2022.03.18 |
파이썬 표준 출력방법 예제로 총 정리 (0) | 2022.03.17 |