문과생의 파이썬

[데파종] 데이터분석 파이썬 종합반 2주차 (리스트, 튜플, 딕셔너리)

DorYi 2024. 7. 4. 16:29

변수4 : 리스트

 - 대괄호 [ ]를 사용해 리스트를 만들 수 있음

 - 리스트는 여러 값을 순서대로 담을 수 있음

 

4-1. 리스트 인덱싱

 : 리스트에서 특정 값에 접근하는 방법

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

# 첫 번째 요소에 접근하기
first_number = numbers[0]
print("First number:", first_number)

# 두 번째 요소에 접근하기
second_number = numbers[1]
print("Second number:", second_number)

# 마지막 요소에 접근하기
last_number = numbers[-1]
print("Last number:", last_number)

# 음수 인덱스를 사용하여 역순으로 요소에 접근하기
second_last_number = numbers[-2]
print("Second last number:", second_last_number)

 

 

4-2. 리스트의 다양한 매소드

  • append(): 리스트에 항목을 추가합니다. (무조건 맨 뒤에 추가)
  • extend(): 리스트에 다른 리스트의 모든 항목을 추가합니다. (무조건 맨 뒤에 추가)
  • insert(): 리스트의 특정 위치에 항목을 삽입합니다. (원하는 위치에 추가)
  • remove(): 리스트에서 특정 값을 삭제합니다.
  • pop(): 리스트에서 특정 위치의 값을 제거하고 반환합니다.
  • index(): 리스트에서 특정 값의 인덱스를 찾습니다.
  • count(): 리스트에서 특정 값의 개수를 세어줍니다.
  • sort(): 리스트의 항목들을 정렬합니다.
  • reverse(): 리스트의 항목들을 역순으로 뒤집습니다.

 4-3. 리스트 값 삭제

 

  del : 몇 번째 위치의 것을 제거할 것인가를 설정

# 리스트의 항목 삭제
del my_list[0]
print("첫 번째 항목 삭제 후 리스트:", my_list) 

# 리스트 내 값들의 모든 항목 제거
my_list.clear()
print("모든 항목 제거 후 리스트:", my_list)

 

 

 4-4. 리스트 값 변경(중첩된 리스트도 가능)

 

  인덱싱을 활용하여 특정 위치의 값을 다른 값으로 변경

my_list = ['apple', 'banana', 'cherry', 'date', 'elderberry']

# 리스트 값 변경하기
my_list[3] = 'dragonfruit'
print(my_list)  # 출력: ['apple', 'banana', 'cherry', 'dragonfruit', 'elderberry']

 

 4-5. 리스트 고급 사용법

  1) 슬라이싱

   사용 방법 : list [ start : end : step ] : start부터 end까지를 가져옴

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(reverse=True) : 내림차순 정렬

   sort(key=len) : 문자열 길이 순으로 정렬

 

 

변수5 : 튜플

: 변경할 수 없는 시퀀스 자료형. 한 번 생성된 이후에는 요소를 추가, 삭제, 수정할 수 없다. 데이터 불변성

- 소괄호 ( )를 사용함

- 리스트와 매우 유사하나 데이터불변성이 차이점

- 주로 데이터를 보호하고 싶을 때 사용 

 

 5-1. 튜플의 인덱싱

my_tuple = (1, 2, 3, 'hello', 'world')

print(my_tuple[0])      # 첫 번째 요소에 접근
print(my_tuple[-1])     # 마지막 요소에 접근
print(my_tuple[2:4])    # 인덱스 2부터 3까지의 요소를 슬라이싱

 

 5-2. 튜플에서 자주 사용하는 매서드

 - count( ) : 지정된 요소의 개수를 반환

 - index( ) : 지정된 요소의 인덱스를 반환

# 튜플 생성
my_tuple = (1, 2, 3, 4, 1, 2, 3)

# count() 메서드 예제
count_of_1 = my_tuple.count(1)
print("Count of 1:", count_of_1)  # 출력: 2

# index() 메서드 예제
index_of_3 = my_tuple.index(3)
print("Index of 3:", index_of_3)  # 출력: 2

튜플을 합치거나 반복해 새로운 튜플을 생성할 수 있음

 

 5-3. 튜플🔁리스트

 - 튜플->리스트 : list( )함수

 - 리스트->튜플 : tuple( )

 

 5-4. 변하면 안되는 개인정보 데이터를 튜플로 변수에

# 데이터 표현 예시
record = ('John', 30, 'john@example.com')

데이터 불변성과 일관성을 유지해줌

 

 

변수5 : 딕셔너리

: 키(항목) - 값 쌍의 데이터를 저장하는 자료 구조

- 중괄호 { } 사용, 각 요소는 쉼표로 구분

 

# 빈 딕셔너리 생성
empty_dict = {}

# 학생 성적표
grades = {
    'Alice': 90,
    'Bob': 85,
    'Charlie': 88
}

# 접근하기
print(grades['Alice'])  # 출력: 90

# 값 수정하기
grades['Bob'] = 95

# 요소 추가하기
grades['David'] = 78

# 요소 삭제하기
del grades['Charlie']

가독성을 위해 중괄호{ } 를 띄워쓴다

 

5-1 딕셔너리에서 자주 사용되는 메서드

 keys(): 모든 키를 dict_keys 객체로 반환합니다.

 values(): 모든 값을 dict_values 객체로 반환합니다.

 items(): 모든 키-값 쌍을 (키, 값) 튜플로 구성된 dict_items 객체로 반환합니다. 

 get(): 지정된 키에 대한 값을 반환합니다. 키가 존재하지 않으면 기본값을 반환합니다.

 pop(): 지정된 키와 해당 값을 딕셔너리에서 제거하고 값을 반환합니다.

 popitem(): 딕셔너리에서 마지막 키-값 쌍을 제거하고 반환합니다.