20240704 TIL
리스트(List)
: 파이썬에서 가장 자주 사용되는 데이터 구조 중 하나.
: 여러 항목들을 담을 수 있는 가변한 시퀀스
▶ 기본 구조
# 1. 리스트 생성
my_list = [1, 2, 3, 4, 5]
# 2. 리스트의 기본 구조
print(my_list) # 출력: [1, 2, 3, 4, 5]
▶리스트 기본 사용법
- append(): 리스트에 항목을 추가합니다.
- extend(): 리스트에 다른 리스트의 모든 항목을 추가합니다.
- insert(): 리스트의 특정 위치에 항목을 삽입합니다.
- remove(): 리스트에서 특정 값을 삭제합니다.
- pop(): 리스트에서 특정 위치의 값을 제거하고 반환합니다.
- index(): 리스트에서 특정 값의 인덱스를 찾습니다.
- count(): 리스트에서 특정 값의 개수를 세어줍니다.
- sort(): 리스트의 항목들을 정렬합니다.
- reverse(): 리스트의 항목들을 역순으로 뒤집습니다.
더보기
더보기
# 리스트 생성
my_list = [1, 2, 3, 4, 5]
#리스트의 다양한 메서드(Methods)
my_list.append(6) # 리스트에 새로운 항목 추가
print(my_list) # 출력: [1, 2, 3, 4, 5, 6]
my_list.extend([7, 8, 9]) # 다른 리스트의 모든 항목을 추가
print(my_list) # 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9]
my_list.insert(2, 10) # 두 번째 위치에 값 삽입
print(my_list) # 출력: [1, 2, 10, 3, 4, 5, 6, 7, 8, 9]
my_list.remove(3) # 값 3 삭제
print(my_list) # 출력: [1, 2, 10, 4, 5, 6, 7, 8, 9]
popped_value = my_list.pop(5) # 다섯 번째 위치의 값 제거하고 반환
print(popped_value) # 출력: 6
print(my_list) # 출력: [1, 2, 10, 4, 5, 7, 8, 9]
print(my_list.index(4)) # 출력: 3 (값 4의 인덱스)
print(my_list.count(7)) # 출력: 1 (값 7의 개수)
my_list.sort() # 리스트 정렬
print(my_list) # 출력: [1, 2, 4, 5, 7, 8, 9, 10]
my_list.reverse() # 리스트 역순으로 뒤집기
print(my_list) # 출력: [10, 9, 8, 7, 5, 4, 2, 1]
▶ 리스트 고급 사용법
1. 슬라이싱 : 리스트의 일부분을 추출하는 것
# 리스트 슬라이싱의 구분
# 아래는 실행하는 코드가 아닙니다
new_list = old_list[start:end:step]
- 파이썬은 맨 처음을 가리키는 인덱스가 0! (1이 아님에 유의)
- 슬라이싱을 할 때 끝에 입력할 인덱스는 내가 선택할 인덱스보다 +1을 해줘야 함! (1번째부터 12번째까지의 요소를 가져올 것이면 [0:13] 이렇게 슬라이싱을 해야 하는것)
더보기
더보기
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 1. 일부분만 추출하기
print(my_list[2:5]) # 출력: [3, 4, 5]
# 2. 시작 인덱스 생략하기 (처음부터 추출)
print(my_list[:5]) # 출력: [1, 2, 3, 4, 5]
# 3. 끝 인덱스 생략하기 (끝까지 추출)
print(my_list[5:]) # 출력: [6, 7, 8, 9, 10]
# 4. 음수 인덱스 사용하기 (뒤에서부터 추출)
print(my_list[-3:]) # 출력: [8, 9, 10]
# 5. 간격 설정하기 (특정 간격으로 추출)
print(my_list[1:9:2]) # 출력: [2, 4, 6, 8]
# 6. 리스트 전체를 복사하기
copy_of_list = my_list[:]
print(copy_of_list) # 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 7. 리스트를 거꾸로 뒤집기
reversed_list = my_list[::-1]
print(reversed_list) # 출력: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
2. 정렬 : sort() 메서드는 리스트의 항목들을 정렬하는 데 사용
- 항목들이 오름차순으로 정렬
- 리스트의 항목들이 동일한 형태일 경우에만 정렬
- sort() 메서드는 원래의 리스트를 변경하며, 새로운 정렬된 리스트 반환 X
- reverse: 정렬 순서를 지정합니다. 기본값은 False로 오름차순을 의미하며, True로 설정하면 내림차순으로 정렬
더보기
더보기
# 숫자로 이루어진 리스트 정렬 예시
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
numbers.sort()
print("정렬된 리스트:", numbers) # 출력: [1, 1, 2, 3, 4, 5, 5, 6, 9]
# 문자열로 이루어진 리스트 정렬 예시
words = ['apple', 'banana', 'orange', 'grape', 'cherry']
words.sort()
print("정렬된 리스트:", words) # 출력: ['apple', 'banana', 'cherry', 'grape', 'orange']
# 내림차순으로 리스트 정렬 예시
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
numbers.sort(reverse=True)
print("내림차순으로 정렬된 리스트:", numbers) # 출력: [9, 6, 5, 5, 4, 3, 2, 1, 1]
# 리스트의 문자열 길이로 정렬 예시
words = ['apple', 'banana', 'orange', 'grape', 'cherry']
words.sort(key=len)
print("문자열 길이로 정렬된 리스트:", words) # 출력: ['apple', 'grape', 'banana', 'cherry', 'orange']
튜플(Tuple)
▶튜플과 리스트의 차이점
- 튜플은 변경할 수 없기 때문에 요소를 추가, 삭제, 수정하는 것은 불가능
- 하지만 튜플을 합치거나 반복하여 새로운 튜플을 생성은 가능
- 이러한 특성은 데이터 불변성(immutable)을 보장
- 참고!) 불변성이란 변경할 수 없는 상태를 얘기하는 것이며 이 단어와 반대되는 말로는 가변성(mutable)
- 따라서 튜플이 불변성이라는 얘기는 튜플 안에 있는 값을 임의로 수정할 수 없다는 얘기!
▶ 튜플 -> 리스트로 변경, 리스트 -> 튜플로 변경
# 튜플을 리스트로 변경하기
my_tuple = (1, 2, 3, 4, 5)
my_list = list(my_tuple)
print(my_list) # 출력: [1, 2, 3, 4, 5]
# 리스트를 튜플로 변경하기
my_list = [1, 2, 3, 4, 5]
my_tuple = tuple(my_list)
print(my_tuple) # 출력: (1, 2, 3, 4, 5)
딕셔너리(Dictionary)
▶딕셔너리 : 데이터를 사전처럼 정리 가능
- 파이썬 딕셔너리는 키-값 쌍의 데이터를 저장하는 자료구조로, 중괄호 {}로 둘러싸여 있으며 각 요소는 쉼표로 구분
딕셔너리의 기본 구조
my_dict = {
'key1': 'value1',
'key2': 'value2',
'key3': 'value3'
}
▶딕셔너리 기본기
# 빈 딕셔너리 생성
empty_dict = {}
# 학생 성적표
grades = {
'Alice': 90,
'Bob': 85,
'Charlie': 88
}
# 접근하기
print(grades['Alice']) # 출력: 90
# 값 수정하기
grades['Bob'] = 95
# 요소 추가하기
grades['David'] = 78
# 요소 삭제하기
del grades['Charlie']
▶ 딕셔너리에 자주 사용되는 메서드
- keys(): 모든 키를 dict_keys 객체로 반환합니다.
- values(): 모든 값을 dict_values 객체로 반환합니다.
- items(): 모든 키-값 쌍을 (키, 값) 튜플로 구성된 dict_items 객체로 반환합니다.
- get(): 지정된 키에 대한 값을 반환합니다. 키가 존재하지 않으면 기본값을 반환합니다.
- pop(): 지정된 키와 해당 값을 딕셔너리에서 제거하고 값을 반환합니다.
- popitem(): 딕셔너리에서 마지막 키-값 쌍을 제거하고 반환합니다.
더보기
더보기
# 딕셔너리 생성
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
# keys() 메서드 예제
keys = my_dict.keys()
print("Keys:", keys) # 출력: dict_keys(['name', 'age', 'city'])
# values() 메서드 예제
values = my_dict.values()
print("Values:", values) # 출력: dict_values(['John', 30, 'New York'])
# items() 메서드 예제
items = my_dict.items()
print("Items:", items) # 출력: dict_items([('name', 'John'), ('age', 30), ('city', 'New York')])
# get() 메서드 예제
age = my_dict.get('age')
print("Age:", age) # 출력: 30
# pop() 메서드 예제
city = my_dict.pop('city')
print("City:", city) # 출력: New York
print("Dictionary after pop:", my_dict) # 출력: {'name': 'John', 'age': 30}
# popitem() 메서드 예제
last_item = my_dict.popitem()
print("Last item popped:", last_item) # 출력: ('age', 30)
print("Dictionary after popitem:", my_dict) # 출력: {'name': 'John'}
QUIZ
Q1. 리스트에서 세 번째 요소를 출력
my_list = [10, 20, 30, 40, 50]
print(my_list[2])
Q2. 리스트에 60을 추가
my_list = [10, 20, 30, 40, 50]
my_list.append(60)
print(my_list)
Q3. 리스트의 길이를 출력
my_tuple = ('apple', 'banana', 'orange', 'grape')
len(my_tuple)
len_tuple = len(my_tuple)
print(len_tuple)
Q4. 리스트의 마지막 요소를 제거
my_list = ['car', 'bus', 'bike', 'train']
my_list.pop(3)
print(my_list)
Q5. 리스트를 역순으로 출력
my_list = ['red', 'green', 'blue', 'yellow']
my_list.reverse()
print(my_list)
Q6. 튜플에서 세 번째 요소를 출력
my_tuple = (10, 20, 30, 40, 50)
print(my_tuple[2])
Q7. 튜플의 길이 구하기
my_tuple = (10, 20, 30, 40, 50)
print(len(my_tuple))
Q8. 튜플을 역순으로 출력
my_tuple = ('red', 'green', 'blue', 'yellow')
rev_tuple = my_tuple[::-1]
print(rev_tuple)
Q9 .튜플을 리스트로 변환
my_tuple = (1, 2, 3, 4, 5)
list(my_tuple)
Q10. 튜플과 다른 튜플을 연결하여 새로운 튜플 만들기
my_tuple1 = ('a', 'b', 'c')
my_tuple2 = ('d', 'e', 'f')
new_tuple = my_tuple1 + my_tuple2
print(new_tuple)
Q11. 딕셔너리에서 'name' 에 해당하는 값 출력
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}
print(my_dict['name'])
Q12. 딕셔너리에 'gender'를 추가
my_dict = {'name': 'Bob', 'age': 25, 'city': 'Los Angeles'}
my_dict['gender'] = 'w'
print(my_dict)
Q13. 딕셔너리의 길이를 출력
my_dict = {'a': 100, 'b': 200, 'c': 300}
print(len(my_dict))
Q14. 딕셔너리에서 'age'를 제거
my_dict = {'name': 'Charlie', 'age': 35, 'city': 'Chicago'}
del my_dict['age']
print(my_dict)
크게 어렵진 않지만 충분한 복습과 노력이 필요 할 것 같다.
퀴즈도 풀어봤지만 뭔 말인지는 알겠지만 아직 함수를 잘 몰라서 더 어렵게 느껴진다
암기가 아닌 이해가 필요하므로 꾸준히 복습을 해주자!
'✨Today I Learned > Python' 카테고리의 다른 글
Python CODEKATA 15번, 16번 (0) | 2024.07.08 |
---|---|
Python : 조건문, 반복문, 함수 (0) | 2024.07.05 |
Python : 자료형(2) (0) | 2024.07.02 |
Python : 자료형(1) (0) | 2024.07.01 |
사전캠프 4일차 기록(파이썬 강의 1-10~1-18) (0) | 2024.05.30 |