본문 바로가기
파이썬/파이썬 기초 문법

파이썬 컬렉션 타입 (1) 리스트

by 쵠몽 2024. 9. 26.

1. 컬렉션(Collection)

컬렉션은 모음이란 뜻으로 파이썬에서 여러 값을 하나의 단위로 묶어서 관리할 수 있게 해 준다. 리스트, 튜플, 세트, 딕셔너리 등이 기본적인 파이썬 컬렉션 타입에 속한다.

 

컬렉션 생성함수 특징 형태 예시
리스트 list() 추가, 수정, 삭제 가능 대괄호 [] l = [1, 2, 3]
튜플 tuple() 변경 불가능 소괄호 () t = (1, 2, 3)
딕셔너리 dict() 키-값 쌍으로 관리 {키:값} d = {'a' : 5}
세트 set() 중복된 값 저장 불가능 중괄호{} s = {1, 2, 3}

 

 

2. 리스트

여러 값들을 하나의 변수에 저장하여 관리할 수 있는 자료 구조이고 대괄호 []를 사용한다.

 

 

2-1. 리스트 생성

li1 = [1, 3, 5, 7, 9]
print(li1)
print(type(li1))

li2 = list([1, 3, 5, 7, 9])
print(li2)
print(type(li2))

li3 = ['김사과', '반하나', '오렌지', '이메론']
print(li3)

li4 =[1, 50.5, '김사과', True]
print(li4)

print(type(li4))

 

 

2-2. 인덱싱

리스트의 각 요소는 위치(인덱스)를 가지고 있으며 인덱싱을 사용하여 접근할 수 있다. 인덱스의 순서는 0부터 시작한다.

print(li4[0])
print(type(li4[0]))

print(li4[0])
print(li4[1])
print(li4[2])
print(li4[3])
# print(li4[4]) # IndexError: list index out of range

인덱스를 벗어난 값은 추출할 수 없다.

 

print(type(li4[0]))
print(type(li4[1]))
print(type(li4[2]))
print(type(li4[3]))

인덱싱을 이용하여 요소들의 타입도 알아볼 수 있다.

 

li1 = [1, 3, 5, 7, 9]
print(li1)
print(li1[2])
print(li1[-1]) # 9
print(li1[2]+li1[-1])
li2 = [1, 2, '파이썬',['김사과', '오렌지']]
print(li2)
print(type(li2))
print(li2[1])
print(type(li2[1]))
print(li2[3])
print(type(li2[3]))
print(li2[3][1])
print(type(li2[3][1]))

li3 = [1, 2, 3, ['김사과', '오렌지', '반하나', ['🍔', '🌭', '🥩', '🍗']]]
print(li3)
print(li3[2])
print(li3[-1])
print(li3[-1][-2])
print(li3[-1][-1][-2])

 

 

2-3. 슬라이싱

리스트의 일부를 추출할 수 있다.

li1 = [1, 3, 5, 7, 9]
print(li1)
print(li1[0:3])

li3 = [1, 2, 3, ['김사과', '오렌지', '반하나', ['🍔', '🌭', '🥩', '🍗']]]
print(li3[2:3])
print(li3[3][:2])

 

 

2-4. 요소 변경

리스트의 요소들은 수정, 추가, 삭제하는 등 변경이 가능하다.

li1 = [1, 3, 5, 7, 9]

li2 = li1
print(li2)
li2[0] = 100
print(li2)
print(li1)
li4 = [10, 20, 30, 40, 50]
# 슬라이싱을 이용하여 요소를 추가한 경우 리스트에 데이터만 포함
li4[1:2] = ['😁', '😂', '😎', '😍']
print(li4)

li4 = [10, 20, 30, 40, 50]
# 인덱싱을 이용하여 요소를 추가한 경우 리스트 안에 리스트를 만들고 포함
li4[1] = ['😁', '😂', '😎', '😍']
print(li4)

li4 = [10, 20, 30, 40, 50]
print(li4[1:3])
li4[1:3] = [] # 빈 리스트를 슬라이싱을 통해 저장하면 해당 요소가 삭제됨
print(li4)

li4 = [10, 20, 30, 40, 50]
print(li4[1:2])
print(li4[1])
li4[1] = []
print(li4)

li4 = [10, 20, 30, 40, 50]
print(li4)
del li4[1]
print(li4)

 

 

2-5. 연산

li5 = [10, 20, 30]
li6 = [40, 50, 60]
print(li5 + li6)
print(li6 + li5)

li5 = [10, 20, 30]
li6 = li5 + [40, 50, 60] # [10, 20, 30] + [40, 50, 60]
print(li6)

li6 = [10, 20, 30]
li6 += [40, 50, 60] # li6 = li6 + [40, 50, 60]
print(li6)

li6 = [10, 20, 30]
print(li6 * 3)

 

 

2-6. 함수와 메서드

# len(): 객체의 길이를 반환하는 파이썬의 기본 내장 함수
li6 = [10, 20, 30]
print(len(li6))
li6 = [10, 20, 30]
print(li6)

# append(): 리스트 요소의 끝에 새로운 요소를 추가
li6.append(100)
print(li6)
# li6.append(200, 300) 에러
li6.append([200, 300])
print(li6)
li6 = [10, 20, 30]
print(li6)

# append(): 리스트 요소의 끝에 새로운 여러 요소를 추가
# li6.extend(100) 에러
li6.extend([100])
print(li6)
li6.extend([200, 300, 400])
print(li6)
li6 = [10, 20, 30]
print(li6)

# pop(): 리스트 마지막 요소를 삭제하고 삭제된 요소를 반환
# print(li6.pop())
temp = li6.pop()
print(li6)
print(temp)
li6 = [10, 20, 30]
print(li6)

# index(): 리스트에서 특정 값의 인덱스를 반환
print(li6.index(30))
# print(li6.index(100)) # 값이 없으면 에러
li7 = [100, 50, 70, 60, 20]
print(li7)

# reverse(): 리스트의 요소들의 순서를 반대로 설정
li7.reverse()
print(li7)
# 슬라이싱을 사용하여 리스트의 요소들의 순서를 반대로 설정하는 방법
li7 = [100, 50, 70, 60, 20]
print(li7[:]) # [0:5]
print(li7[0:5])
print(li7[::])    # step이 생략
print(li7[0:5:1]) # step의 기본값은 1
print(li7[0:5:2]) # step을 2로 설정
li7 = [100, 50, 70, 60, 20]
print(li7[::-1])
# step이 -1일 경우 start의 기본값은 -1, stop의 기본값은 0으로 설정
print(li7[1::-1])
print(li7[:0:-1])
li7 = [100, 50, 70, 60, 20]
print(li7)

# sort(): 리스트의 요소를 오름차순으로 정렬
li7.sort()
print(li7)
# sort(reverse=True): 리스트의 요소를 내림차순으로 정렬
li7.sort(reverse=True)
print(li7)

li8 = ['Apple', 'apple', 'orange', 'banana', 'melon']
li8.sort()
print(li8)

li9 = ['김사과', '오렌지', '반하나', '이메론','배애리']
li9.sort()
print(li9)
li7 = [100, 50, 70, 60, 20]
print(li7)

# sorted(): 모든 요소를 정렬한 후 반환해주는 함수
result = sorted(li7)
print(li7)
print(result)
li9 = [10, 20, 30, 50, 20, 40, 30, 20]
print(li9)

# count(): 리스트에서 특정 요소의 개수를 반환
print(li9.count(20))
print(li9.count(100))

'파이썬 > 파이썬 기초 문법' 카테고리의 다른 글

파이썬 컬렉션 타입 (3) 세트  (0) 2024.09.26
파이썬 컬렉션 타입 (2) 튜플  (0) 2024.09.26
파이썬 문자열 다루기  (1) 2024.09.25
파이썬의 변수  (1) 2024.09.24
파이썬의 출력  (0) 2024.09.24