본문 바로가기
add 깨알 공부

Python 기초 - 자료구조(리스트, 사전, 튜플, 집합, 자료구조의 변경)

by mihsyeh 2021. 6. 2.
나도코딩 강의를 듣고 복습의 의미로 작성하였습니다. 실제 강의 내용이나 예제와 다를 수 있습니다.

 

자료구조

 

1. 리스트 []

redvelvet = ["슬기", "아이린", "웬디"]
print(redvelvet)

 

- 위치 반환  index

print(redvelvet.index("아이린")

 

- 요소 추가 append

redvelvet.append("조이")
print(redvelvet)

 

- 요소 삽입 insert

redvelvet.insert(1, "예리")
print(redvelvet)

 

- 요소 꺼내기 pop

redvelvet = ["슬기", "예리", "아이린", "웬디", "조이"]
print(redvelvet.pop())
print(redvelvet)

print(redvelvet.pop())
print(redvelvet)

 

- 요소 개수 세기 count

redvelvet.append("슬기")
print(redvelvet)

print(redvelvet.count("슬기"))

 

- 리스트 정렬 sort

num_list = [5, 2, 4, 1, 3]
num_list.sort()
print(num_list)

 

- 순서 뒤집기 reverse

num_list.reverse()
print(num_list)

 

- 요소 모두 지우기 clear

num_list.clear()
print(num_list)

 

- 다양한 자료형 함께 사용 가능

mix_list = ["슬기", 20, True]
print(mix_list)

 

- 리스트 확장 extend

num_list = [5, 2, 4, 1, 3]
num_list.extend(mix_list)
print(num_list)

 

 

2. 사전

- 딕셔너리 튜플의 기본 형식 : Key 값은 고유한 값이고 중복이 허용되지 않음

{Key1:Value1, Key2:Value2, Key3:Value3 ...}

 

cabinet = {3:"슬기", 100:"조이"}
print(cabinet[3])
print(cabinet[100])

 

- Key값으로 Value 얻기 get

print(cabinet.get(3))

 

print(cabinet[5])
print("hi")

get은 "N존재하지 않는 키를 입력 시 오류가 발생하고 프로그램이 종료된다.
뒤이어 "hi"도 출력 못함.

 

print(cabinet.get(5))
print(cabinet.get(5, "사용 가능"))
print("hi")

get은 "None"을 출력한다 (거짓이란 뜻)
5에 해당하는 값이 없으면 디폴트 값인 "사용 가능"을 출력한다.
이어 hi도 출력가능해짐

 

- 딕셔너리 안에 해당 값이 있는지 조사하기 in

print(3 in cabinet)
print(5 in cabinet)

 

- string

cabinet = {"A-3" : "슬기", "B-100" : "조이"}
print(cabinet["A-3"])
print(cabinet["B-100"])

 

- 키 삽입

print(cabinet)
cabinet["A-3"] = "웬디"
cabinet["c-20"] = "예리"
print(cabinet)

 

- 키 삭제 dle

dle cabinet["A-3"]
print(cabinet)

 

- key만 출력

print(cabinet.keys())

 

- value만 출력

print(cabinet.values())

 

- key, value 쌍으로 출력 items

print(cabinet.items())

 

- key, value 쌍으로 삭제 clear

cabinet.clear()
print(cabinet)

 

 

3. 튜플 ()

내용 변경 및 추가 불가하지만 속도가 리스트보다 빠름. 변경되지 않는 목록 생성시 사용함

- 튜플 인덱싱

menu = ("돈까스", "치즈까스")
print(menu[0])
print(menu[1])

 

- 괄호를 생략해도 무방하다

name, age, hobby = "웬디", 20, "노래"
print(name, age, hobby)

 

 

 

4. 집합 (set)

my_set = {1,2,3,3,3}
print(my_set)

중복 불가, 순서 없음

 

Java = {"웬디", "슬기", "조이"}
Python = set(["슬기", "예리", "아이린"])

 

- 교집합 기호 & 혹은 intersection 함수 사용

print(Java & Python)
print(Java.intersection(Python))

 

- 합집합 기호 | 혹은 union 함수 사용 (중복X)

print(Java | Python)
print(Java.union(Python))

 

- 차집합 기호 - (빼기) 혹은 difference 함수 사용

print(Java - Python)
print(Java.difference(Python))

 

- 값 1개 추가 add / 여러개 추가 update

Python.add("웬디")
print(Python)

 

- 특정 값 제거 remove

Java.remove("웬디")
print(Java)

 

 

 

5. 자료구조의 변경

menu = {"커피", "우유", "주스"}
print(menu, type(menu))

menu = list(menu)
print(menu, type(menu))

menu = tuple(menu)
print(menu, type(menu))

menu = set(menu)
print(menu, type(menu))

괄호가 바뀜

 

 

Quiz. 20중 1명은 치킨, 3명은 커피 쿠폰을 받는 추천 프로그램을 작성하시오 (조건있음)

더보기
from random import *

users = range(1, 21)
users = list(users)

print(users)
suffle(users)
print(users)

winners = sample(users, 4)

print(" -- 당첨자 발표 -- ")
print("치킨 당첨자 : {0}" .format(winners[0]))
print("커피 담당자 : {0}" .format(winners[1:]))
print(" -- 축하합니다 -- ")

 

 

댓글