[파이썬 기초] 리스트 자료형

미니딩거·2023년 9월 21일

파이썬 기초

목록 보기
2/2
post-thumbnail

파이썬 리스트 자료형에 대해서 알아보자!


리스트 자료형

여러 데이터를 연속적으로 담아서 처리하기 위해 사용하는 자료형

  • 대괄호 안에 원소를 넣어 초기화 할 수 있고, 쉼표로 원소를 구분한다
  • 원소에 접근할 때는 인덱스 값을 활용한다 (인덱스는 0부터 시작)
# 리스트 초기화
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]

슬라이싱은 연속적인 위치를 갖는 원소를 가져올 때 사용

  • 대괄호 안에 콜론을 넣어서 시작과 끝의 인덱스 설정
  • 끝 인덱스는 실제 인덱스보다 "1"을 더 크게 설정해야 한다.
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]
profile
안녕하세요! 개발자 미니딩거 입니다:D

0개의 댓글