
리스트 자료형
여러 데이터를 연속적으로 담아서 처리하기 위해 사용하는 자료형
# 리스트 초기화
a = [1, 2, 3, 4, 5]
# 세 번째 원소 접근
print(a[2]) # 결과 : 3
# 크기가 n이고 모든 원소가 0인 1차원 리스트
n = 10
c = [0] * n
인덱싱과 슬라이싱
인덱싱은 리스트의 특정한 원소에 접근하는 것
a = [1, 2, 3, 4, 5, 6, 7]
# 네 번째 원소 접근
print(a[3]) # 결과 : 4
# 뒤에서 세 번째 원소 접근
print(a[-3]) # 결과 : 5
# 네 번째 원소 변경
a[3] = 100
print(a) # 결과 : [1, 2, 3, 100, 5, 6, 7]
슬라이싱은 연속적인 위치를 갖는 원소를 가져올 때 사용
a = [1, 2, 3, 4, 5, 6, 7]
# 네 번째 원소만 접근
print(a[3]) # 결과 : 4
# 첫 번째 원소부터 네 번째 원소까지 접근
print(a[0:4]) # 결과 : [1, 2, 3, 4]
리스트 컴프리헨션
대괄호 안에 조건문과 반복문을 사용해 리스트를 초기화 할 수 있다
# 0~10까지의 리스트
a = [i for i in range(11)]
print(a) # 결과 : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
일반 코드 예시)
# 0~10까지 수 중에서 홀수만 포함하는 리스트
a = []
for i in range(11):
if i % 2 == 1:
a.append(i)
print(a) # 결과 : [1, 3, 5, 7, 9]
# 0~10까지 수들의 제곱값을 포함하는 리스트
a = []
for i in range(11):
if i % 2 == 1:
a.append(i * i)
print(a) # 결과 : [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
리스트 컴프리헨션 예시)
# 0~10까지 수 중에서 홀수만 포함하는 리스트
a = [i for i in range(11) if i % 2 == 1]
print(a) # 결과 : [1, 3, 5, 7, 9]
# 0~10까지 수들의 제곱값을 포함하는 리스트
a = [i * i for i in range(11)]
print(a) # 결과 : [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
리스트 컴프리헨션은 2차원 리스트를 초기화 할 때 효과적이다
# N*M 크기의 2차원 리스트 초기화 하기
n = 2
m = 3
a = [[0]*m for _ in range(n)]
print(a) # [[0, 0, 0], [0, 0, 0]]
반복문에서 언더바
- 반복을 수행하지만 반목을 위한 변수값을 무시하고자 할 때 언더바를 사용
리스트 관련 메서드
a = [2, 1, 3]
# 리스트 원소 삽입
a.append(4)
print(a) # 결과 : [2, 1, 3, 4]
# 오름차순 정렬
a.sort()
print(a) # 결과 : [1, 2, 3, 4]
# 내림차순 정렬
a.sort(reverse = True)
print(a) # 결과 : [4, 3, 2, 1]
# 원소 뒤집기
a.reverse()
print(a) # 결과 : [1, 2, 3, 4]
# 특정 인덱스(2) 데이터(4) 추가
a.insert(2, 4)
print(a) # 결과 : [1, 2, 4, 3, 4]
# 특정 데이터 개수 세기
a.reverse()
print(a.count(4)) # 결과 : 2
# 특정 값을 가지는 원소 모두 제거
a = [1, 2, 3, 3, 4, 5, 5, 5]
remove_set = {3, 5}
result = [i for i in a if i not in remove_set]
print(result) # 결과 : [1, 2, 4]