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 |