class="layout-aside-right paging-number">
본문 바로가기
데이터 분석/Python

Python (2) : list[ ], tuple( ), dictionary{ }

by heestory323 2025. 3. 5.

1. List = [ ]

  • list : 여러가지 값을 순서대로 담을 수 있는 변경가능한 시퀀스
# 1. 리스트 생성
my_list = [1, 2, 3, 4, 5]

# 2. 리스트의 기본 구조
print(my_list)  # 출력: [1, 2, 3, 4, 5]

1-1. 인덱싱 [ ] : 1개의 값 가져오기

  • 일부 추출 : 인덱싱(indexing) -> 파이썬은 0부터 시작 : [0]  ~ 
                                                         역순으로 시작  <-  [-1]  ~
first_number = my_list[0]
print("first_number:",first_number) # first_nuber:1

last_number = my_list[-1]
print("last_number:",last_number) # first_nuber:5
  • list의 함수(메서드)
    • .append(값) : 값 추가
    • .extend() : 리스트 + 다른 리스트의 모든 값 추가
    • .insert(위치,값) : 특정위치에 값 삽입
    • .remove() : 특정 값 삭제
    • .pop(위치) : 특정 위치의 값 제거 후 다시 반환
    • .index(값) : 특정 값의 인덱스(위치) 찾기
    • .count(값) : 특정 값의 개수 세기
    • .sort() : 리스트 정렬
    • .reverse() : 항목을 역순으로 정렬
my_list.append(6) # 리스트에 새로운 항목 추가
print(my_list)  # 출력: [1, 2, 3, 4, 5, 6]

 

  • 리스트의 값 삭제 
    • del 리스트 [ ] : 리스트의 값 삭제
    • .clear() : 리스트 내의 모든 값 삭제
# 리스트의 항목 삭제
del my_list[0]
print("첫 번째 항목 삭제 후 리스트:", my_list) 

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

 

  • 특정 위치의 리스트 값 -> 다른 값으로 변경하기(수정)
my_list = ['apple', 'banana', 'cherry', 'date', 'elderberry']

# 리스트 값 변경하기 : date -> dragonfruit 
my_list[3] = 'dragonfruit'

print(my_list)  #  ['apple', 'banana', 'cherry', 'dragonfruit', 'elderberry'] 로 출력

 

  • 2개 이상 중첩된 리스트에서도 인덱싱 가능
# 중첩된 리스트에서 인덱싱하기
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(nested_list[1][0])  # 4 (두 번째 리스트의 첫 번째 항목)

 

1-2. 슬라이싱 [ : : ] : 값의 범위(여러개) 가져오기 

리스트의 일부분 추출, 특정 범위 선택하여 가져오기

my_list = a_list [ 시작위치 : 끝나는 위치 : 간격 ]

                        start - 0부터 시작
                                               end - index+1 해서 써야함.

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 1. 일부분만 추출하기
-> # end 인덱스의 한칸 전까지만 간다
print(my_list[2:5])   # [3, 4, 5] 출력

 

  • 음수 인덱스  : 시작 하는 위치가 -n번째 라는 거지, 방향이 반대인 것은 아님. 
                                                                                         방향은 그대로! 
# 4. 음수 인덱스 사용하기 (뒤에서부터 추출)
print(my_list[-3:])   # 출력: [8, 9, 10]

 

1-3.  정렬  .sort( )

  • (기본) 오름차순 정렬 : .sort()
  • 내림차순 정렬 : .sort(reverse=True)
my_list = [2,3,4,7,5]
my_list.sort() # 오름차순 정렬(기본)

my_list.sort(reverse=True) # 내림차순 정렬

print(my_list) # 오름차순 # [2,3,4,5,7]
               # 내림차순 # [7,5,4,3,2]

 

 

2. Tuple = ( )  or 생략 가능

한 번 생성된 이후에 요소를 추가, 삭제, 수정 xxx  ->  변경할 수 없는 시퀀스 자료 

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

 

  • List 와 비슷하게 인덱싱/슬라이싱 가능

  • 메서드
    • .count()
    • .index()
  • Tuple ↔ List 변환
    • Tuple → List : list( )
    • List → Tuple : 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)

 

 

 

3. Dictionary = { }

데이터를 사전처럼 정리 가능, 표로 정리하기에 유용함.

my_dict = {
    'key1': 'value1',
    'key2': 'value2',
    'key3': 'value3'
}
  • key : 중복되지 않아야 함.(유일)
  • 값(value) : 중복 ok 

  • 인덱싱(순서대로) x  " key " 를 통해 찾아내는/수정하는 것 
    변수 [ key ] 
# 학생 성적표
grades = {
    'Alice': 90,
    'Bob': 85,
    'Charlie': 88
}

print(grades['Alice'])  # 출력: 90

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

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

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

 

  • 메서드
    • .key() : 모든 key를 dict_keys 객체로 반환
    • .value() : 모든 값을 dict_values 객체로 반환
    • .items() : 모든 key-값 쌍을 (키, 값) 튜플로 반환
    • .get() : 지정 key에 대한 값을 반환
    • .pop() : 지정 key-값 쌍을 딕셔너리에서 제거 후 반환
    • .popitem() : 마지막 key-값 쌍을 제거 후 반환
# 딕셔너리 생성
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'}