[Python]TIL 11일차

Cherta·2024년 4월 29일
0

[TIL]

목록 보기
11/30

리스트(List)

  • 리스트(List) : 파이썬에서 자주 사용되는 데이터 구조 중 하나로 여러 항목들을 담을 수 있는 가변한 가변(mutable)한 시퀀스(sequence)

  • 리스트의 기본 구조

# 리스트 생성
my_list = [1, 2, 3, 4, 5]

# 리스트의 기본 구조
print(my_list) # 출력 : [1, 2, 3, 4, 5]
  • 리스트의 인덱싱(Indexing)
    • 인덱싱(Indexing) : 리스트에서 특정 위치의 값에 접근하는 방법
numbers = [1, 2, 3, 4, 5]

# 첫 번째 요소 접근
first_number = numbers[0]
print(first_number) # 출력 : 1

# 마지막 요소 접근
last_number = numbers[-1]
print(last_number) # 출력 : 5
  • 리스트의 메서드(Methods)
    • 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]
  • 리스트 값 삭제
my_list = [1, 2, 3, 4, 5]

# 리스트의 항목 삭제
del my_list[0]
print(my_list) # 출력 : [2, 3, 4, 5]

# 리스트 내 값들의 모든 항목 제거
my_list.clear()
print(my_list) # 출력 : []
  • 리스트 값 변경
my_list = ['apple', 'banana', 'cherry', 'date', 'elderberry']

# 리스트 값 변경
my_list[3] = 'dragonfruit'
print(my_list) # 출력: ['apple', 'banana', 'cherry', 'dragonfruit', 'elderberry']
  • 중첩된 리스트 인덱싱
# 중첩된 리스트 인덱싱
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(nested_list[1][0]) # 출력: 4 (두 번째 리스트의 첫 번째 항목)
  • 리스트 슬라이싱(Slicing)
    • 슬라이싱(Slicing) : 리스트에서 특정 범위의 항목을 선택하거나 리스트를 자르는 등의 작업으로 리스트의 일부분을 추출하는 방법
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 일부분만 추출
print(my_list[2:5]) # 출력 : [3, 4, 5]

# 시작 인덱스 생략 (처음부터 추출)
print(my_list[:5]) # 출력 : [1, 2, 3, 4, 5]

# 끝 인덱스 생략 (끝까지 추출)
print(my_list[5:]) # 출력 : [6, 7, 8, 9, 10]

# 음수 인덱스 사용 (뒤에서부터 추출)
print(my_list[-3:]) # 출력 : [8, 9, 10]

# 간격 설정 (특정 간격으로 추출)
print(my_list[1:9:2]) # 출력 : [2, 4, 6, 8]

# 리스트 전체 복사
copy_of_list = my_list[:]
print(copy_of_list) # 출력 : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 리스트 뒤집기
reversed_list = my_list[::-1]
print(reversed_list) # 출력 : [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

# 리스트에서 홀수 번째 인덱스의 값들 출력
odd_index_values = my_list[1::2]
print(odd_index_values) # 출력: [2, 4, 6, 8, 10]
  • 리스트 정렬
# 숫자로 이루어진 리스트 정렬 예시
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)

  • 튜플(tuple) : 튜플은 변경할 수 없는(immutable) 시퀀스(sequence) 자료형으로, 여러 개의 요소를 저장하는 컨테이너

  • 튜플의 기본 구조

# 튜플의 생성
my_tuple = (1, 2, 3, 'hello', 'world')

# 튜플의 기본 구조
print(my_tuple) # 출력 (1, 2, 3, 'hello', 'world')
  • 튜플의 인섹싱과 슬라이싱
my_tuple = (1, 2, 3, 'hello', 'world')

# 첫 번째 요소에 접근
print(my_tuple[0]) # 출력 : 1

# 마지막 요소에 접근
print(my_tuple[-1]) # 출력 : world

# 인덱스 2부터 3까지의 요소를 슬라이싱
print(my_tuple[2:4]) # 출력 : (3, 'hello')
  • 튜플의 메서드
    • count() : 지정된 요소의 개수를 반환합니다.
    • index() : 지정된 요소의 인덱스를 반환합니다.
my_tuple = (1, 2, 3, 4, 1, 2, 3)

count_of_1 = my_tuple.count(1)
print(count_of_1) # 출력 : 2 (값 1의 개수)

index_of_3 = my_tuple.index(3)
print(index_of_3) # 출력 : 2 (값 3의 인덱스)
  • 튜플과 리스트의 차이점
    • 튜플은 값을 변경할 수 없기 때문에 요소를 추가, 삭제, 수정하는 것이 불가능
    • 튜플은 합치거나 반복하여 새로운 튜플을 생성 가능
tuple1 = (1, 2, 3)
tuple2 = ('a', 'b', 'c')

# 두 개의 튜플을 합치기
new_tuple = tuple1 + tuple2 # 출력 : (1, 2, 3, 'a', 'b', 'c')
print(new_tuple)

# 튜플을 반복하기
repeated_tuple = tuple1 * 3  # 출력 : (1, 2, 3, 1, 2, 3, 1, 2, 3)
print(repeated_tuple)
  • 튜플 리스트 변경
# 튜플을 리스트로 변경하기
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)

  • 딕셔너리(Dictionary) : 키-값 쌍의 데이터를 저장하는 자료구조 (각 키는 유일해야 하지만 값은 중복 가능, 해시 테이블로 구현되어 있어 키를 사용하여 매우 빠르게 값을 찾을 수 있음)

  • 딕셔너리의 기본 구조

my_dict = {
    'key1': 'value1',
    'key2': 'value2',
    'key3': 'value3'
}
  • 딕셔너리의 메서드
    • keys(): 모든 키를 dict_keys 객체로 반환
    • values(): 모든 값을 dict_values 객체로 반환
    • items(): 모든 키-값 쌍을 (키, 값) 튜플로 구성된 dict_items 객체로 반환
    • get(): 지정된 키에 대한 값을 반환 (키가 존재하지 않으면 기본값을 반환)
    • pop(): 지정된 키와 해당 값을 딕셔너리에서 제거하고 값을 반환
    • popitem(): 딕셔너리에서 마지막 키-값 쌍을 제거하고 반환
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}

keys = my_dict.keys()
print(keys) # 출력 : dict_keys(['name', 'age', 'city'])

values = my_dict.values()
print(values) # 출력 : dict_values(['John', 30, 'New York'])

items = my_dict.items()
print(items) # 출력 : dict_items([('name', 'John'), ('age', 30), ('city', 'New York')])

age = my_dict.get('age')
print(age) # 출력 : 30

city = my_dict.pop('city')
print(city) # 출력: New York
print(my_dict) # 출력 : {'name': 'John', 'age': 30}

last_item = my_dict.popitem()
print(last_item) # 출력 : ('age', 30)
print(my_dict) # 출력 : {'name': 'John'}

0개의 댓글