[Python] 리스트, 사전, 튜플, 집합(set), 자료구조의 변경

룽지·2021년 8월 23일
0

Python

목록 보기
7/10
post-thumbnail

1. 리스트

# 리스트 []
# 지하철 칸별로 10명, 20명, 30명

subway = [10, 20, 30]
print(subway)

subway = ["빨강", "주황", "노랑"]
print(subway)

>>>
[10, 20, 30]
['빨강', '주황', '노랑']

# 주황이가 몇 번째 칸에 타고 있는가?
print(subway.index("주황"))

>>>
1

# 초록이가 다음 정류장에서 다음 칸에 탐
subway.append("초록")
print(subway)

>>>
['빨강', '주황', '노랑', '초록']

# 파랑이가 빨강이와 주황이 사이에 탐
subway.insert(1, "파랑")
print(subway)

>>>
['빨강', '파랑', '주황', '노랑', '초록']

# 지하철에 있는 사람을 한 명씩 뒤에서 꺼냄
subway.pop()
print(subway)

subway.pop()
print(subway)

subway.pop()
print(subway)

>>>
['빨강', '파랑', '주황', '노랑']
['빨강', '파랑', '주황']        
['빨강', '파랑']

# 같은 이름의 사람이 몇 명 있는지 확인
subway.append("빨강")
print(subway.count("빨강"))

>>>
2

# 정렬도 가능
num_list = [5,3,2,1,4]
num_list.sort()
print(num_list)

>>>
[1, 2, 3, 4, 5]

# 순서 뒤집기 가능
num_list.reverse()
print(num_list)

>>>
[5, 4, 3, 2, 1]

# 모두 지우기 가능
num_list.clear()
print(num_list)

>>>
[]

# 다양한 자료형 함께 사용
mix_list = ["조세호", 20, True]
print(mix_list)

>>>
['조세호', 20, True]

# 리스트 확장
num_list = [5, 4, 3, 2, 1]
num_list.extend(mix_list)
print(num_list)

>>>
[5, 4, 3, 2, 1, '조세호', 20, True]

2. 사전

cabinet = {3:"유재석", 100:"김태호"}
print(cabinet[3])
print(cabinet[100])

>>>
유재석
김태호

print(cabinet.get(3))

>>>
유재석

# cabinet[] : 해당 키값이 없으면 오류 후 종료
# print(cabinet[5]) 


# cabinet.get() : 해당 키값이 없으면 none 값 후 다음 실행
print(cabinet.get(5))
print(cabinet.get(5, "사용 가능")) 
print("hi")

>>>
None
사용 가능
hi

# 사전 안에 key 값이 있는지 확인
print(3 in cabinet) # True
print(5 in cabinet) # False

# key 값이 문자열도 가능
cabinet = {"A-3":"유재석", "B-100":"김태호"}
print(cabinet["A-3"])
print(cabinet["B-100"])

>>>
유재석
김태호

# 새로운 손님 추가
cabinet["A-3"] = "김종국"
cabinet["C-20"] = "조세호"
print(cabinet)

>>>
{'A-3': '김종국', 'B-100': '김태
호', 'C-20': '조세호'}

# 나간 손님 삭제
del cabinet["A-3"]
print(cabinet)

>>>
{'B-100': '김태호', 'C-20': '조세호'}

# key들만 출력
print(cabinet.keys())

>>>
dict_keys(['B-100', 'C-20'])    

# value 들만 출력
print(cabinet.values())

>>>
dict_values(['김태호', '조세호'])

# key, value 쌍으로 출력
print(cabinet.items())

>>>
dict_items([('B-100', '김태호'), ('C-20', '조세호')])

# 목욕탕 폐점
cabinet.clear()
print(cabinet)

>>>
{}

3. 튜플

# 튜플 : 리스트와 다르게 내용 변경과 추가할 수 없음
# 하지만 속도가 리스트보다 빠름

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

>>>
돈까스
치즈까스

(name, age, hobby) = ("누룽지", 20, "코딩")
print(name, age, hobby)

>>>
누룽지 20 코딩

4. 집합(세트)

# 집합 (set)
# 중복 안됨, 순서 없음
my_set = {1,2,3,3,3}
print(my_set)

>>>
{1, 2, 3}

java = {"유재석", "김태호", "양세형"}
python = set(["유재석", "박명수"])

# 교집합 (java와 python을 모두 할 수 있는 개발자)
print(java & python)
print(java.intersection(python))

>>>
{'유재석'}
{'유재석'}

# 합집합 (java할 수 있거나 python할 수 있는 개발자)
print(java | python)
print(java.union(python))

>>>
{'유재석', '김태호', '양세형', '박명수'}
{'유재석', '김태호', '양세형', '박명수'}

# 차집합 (java 할 수 있지만 python은 할 줄 모르는 개발자)
print(java - python)
print(java.difference(python))

>>>
{'양세형', '김태호'}
{'양세형', '김태호'}

# python을 할 줄 아는 사람이 늘어남
python.add("김태호")
print(python)

>>>
{'유재석', '김태호', '박명수'}

# java를 잊어버림
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))

>>>
{'커피', '우유', '주스'} <class 'set'>
['커피', '우유', '주스'] <class 'list'>
('커피', '우유', '주스') <class 'tuple'>
{'주스', '우유', '커피'} <class 'set'>

# list 안에 넓은 범위의 숫자 넣을 경우
#id = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
id = range(1,21) # range 이용해 숫자 나열
id = list(id) # range를 list로 변환
print(id, type(id))

>>>
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 
11, 12, 13, 14, 15, 16, 17, 18, 
19, 20] <class 'list'>



📒 참고 자료
https://www.youtube.com/watch?v=kWiCuklohdY

0개의 댓글