반응형
1. 리스트(list)
# 리스트 []
# 지하철 칸별로 10명, 20명, 30명
subway = [10,20,30]
print(subway)
print(subway[0])
subway = ["유재석", "조세호","박명수"]
print(subway)
# 조세호가 몇 번째에 있을까?
print(subway.index("조세호"))
# 하하가 다음 정류장에서 다음 칸에 탐
subway.append("하하")
print(subway)
# 정형돈이 유재석 / 조세호 사이에 태워봄
subway.insert(1, "정형돈")
print(subway)
# 한명씩 꺼냄
subway.pop()
print(subway)
# 같은 이름의 사람이 몇 명 있는지 확인
subway.append("유재석")
print(subway)
print(subway.count("유재석"))
# 정렬
num_list = [5, 2, 4, 3, 1]
num_list.sort()
print(num_list)
# 역순정렬
num_list.reverse()
print(num_list)
# 모두 지우기
num_list.clear()
print(num_list)
# 다양한 자료형과 함께 사용
mix_list = ["조세호", 20, True]
print(mix_list)
# 리스트 확장
numb_list = [5, 4, 3, 2, 1]
numb_list.extend(mix_list)
print(numb_list)
# result
[10, 20, 30]
10
['유재석', '조세호', '박명수']
1
['유재석', '조세호', '박명수', '하하']
['유재석', '정형돈', '조세호', '박명수', '하하']
['유재석', '정형돈', '조세호', '박명수']
['유재석', '정형돈', '조세호', '박명수', '유재석']
2
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]
[]
['조세호', 20, True]
[5, 4, 3, 2, 1, '조세호', 20, True]
2. 사전(Dictionary) - 리스트와 차이점은 키값으로 value를 매칭할 수 있는 점이다. 리스트는 순서대로만 쌓이기때문에 리스트내의 항목 위치를 알아야한다.
cabinet = {3:"유재석", 100:"김태호"} # {key:Value}
print(cabinet[3])
print(cabinet[100])
print(cabinet.get(3))
# print(cabinet[5]) # 오류와 함께 종료
print(cabinet.get(5)) # Value = None 출력
print(cabinet.get(5,"사용가능"))
print(3 in cabinet) # 있다면 True 없다면 False
print(5 in cabinet) # 있다면 True 없다면 False
# 추가
cabinet1 = {"A-3":"유재석", "B-100":"김태호"}
cabinet1["C-20"] = "조세호"
print(cabinet1)
# 삭제
del cabinet1["A-3"]
print(cabinet1)
# key값만 출력
print(cabinet1.keys())
# value값만 출력
print(cabinet1.values())
# 쌍으로 출력
print(cabinet1.items())
# 전체 삭제
cabinet1.clear()
print(cabinet1)
# result
유재석
김태호
유재석
None
사용가능
True
False
{'A-3': '유재석', 'B-100': '김태호', 'C-20': '조세호'}
{'B-100': '김태호', 'C-20': '조세호'}
dict_keys(['B-100', 'C-20'])
dict_values(['김태호', '조세호'])
dict_items([('B-100', '김태호'), ('C-20', '조세호')])
{}
3. 튜플(tuple) - 내부 요소 변경이 없는 경우에만 사용한다. 추가 삭제가 불가능하다.
menu = ("돈까스", "치즈까스") # 변경이 없는 조건에서
print(menu[0])
print(menu[1])
# name = "김종국"
# age = 20
# hobby = "코딩"
(name, age, hobby) = ("김종국", 20, "코딩")
print(name, age, hobby)
# result
돈까스
치즈까스
김종국 20 코딩
4. 집합 (set) - 요소의 중복이 안되고, 순서가 없다.
my_set = {1,2,3,3,3}
print(my_set)
javadev = {"유재석", "김태호", "양세형"}
pythondev = set(["유재석", "박명수"])
# and 조건
print(javadev & pythondev)
print(javadev.intersection(pythondev))
# or 조건
print(javadev | pythondev)
print(javadev.union(pythondev))
# nor 조건 (java 할수 있지만, python은 할 줄 모르는 개발자)
print(javadev - pythondev)
print(javadev.difference(pythondev))
# add
pythondev.add("김태호")
print(pythondev)
# delete
javadev.remove("김태호")
print(javadev)
# result
{1, 2, 3}
{'유재석'}
{'유재석'}
{'유재석', '박명수', '양세형', '김태호'}
{'유재석', '박명수', '양세형', '김태호'}
{'양세형', '김태호'}
{'양세형', '김태호'}
{'김태호', '유재석', '박명수'}
{'양세형', '유재석'}
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))
# result
{'우유', '커피', '주스'} <class 'set'>
['우유', '커피', '주스'] <class 'list'>
('우유', '커피', '주스') <class 'tuple'>
{'우유', '커피', '주스'} <class 'set'>
# 퀴즈 #
# 작성자가 한 풀이
from random import *
lst = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
shuffle(lst)
print("-- 당첨자 발표 --")
print("치킨 당첨자 : " + str(lst[0]))
print("커피 당첨자 : " + str(lst[1]), str(lst[2]), str(lst[3]))
print("-- 축하합니다 --")
# 나도코딩님의 풀이
users = range(1, 21) # 1부터 21미만까지 숫자를 생성
print(type(users))
users = list(users)
print(type(users))
winners = sample(users, 4) # 4명 중에서 1명은 치킨, 3명은 커피
print("-- 당첨자 발표 --")
print("치킨 당첨자 : {0}".format(winners[0]))
print("커피 당첨자 : {0}".format(winners[1:]))
print("-- 축하합니다 --")
# result
-- 당첨자 발표 --
치킨 당첨자 : 18
커피 당첨자 : [5, 10, 3] 10 3
-- 축하합니다 --
<class 'range'>
<class 'list'>
-- 당첨자 발표 --
치킨 당첨자 : 5
커피 당첨자 : [15, 16, 2]
-- 축하합니다 --
본 자료는 나도코딩(유튜버)님의 강의를 바탕으로, 학습하며 정리된 자료임을 밝힙니다.
반응형
'Programming Language > Python' 카테고리의 다른 글
[Python] 4. 문자열 (0) | 2020.06.29 |
---|---|
[Python] 3.연산자 / 수식 / 숫자처리함수 (1) | 2020.06.29 |
[python] 2.기본문법 - 자료형, 변수, 주석 (0) | 2020.06.29 |
[Python] 1.환경설정 (0) | 2020.06.29 |