데이터과학자 - 강의/python
210507 python - built in function, 모듈 활용
vs질럿
2021. 5. 7. 20:16
from _collections import defaultdict
from _collections import defaultdict
def test01():
artist = ['비틀즈', '비틀즈', '아이유', '아이유', '마이클 잭슨', '마이클 잭슨']
music = ['yesterday', 'imagine', '너랑나', '마시멜로우', 'beat it', 'smooth criminal']
gini = defaultdict(list) # 기본 dict를 만들어서 ()객체를 key로 생성하고 value를 추가로 dict로 만드는 과정
for idx, val in enumerate(artist):
gini[val].append(music[idx])
return gini
a = test01()
print(a)
# =====================값 추출=====================
for i in a.values():
print(i)
#result
defaultdict(<class 'list'>, {'비틀즈': ['yesterday', 'imagine'], '아이유': ['너랑나', '마시멜로우'], '마이클 잭슨': ['beat it', 'smooth criminal']})
['yesterday', 'imagine']
['너랑나', '마시멜로우']
['beat it', 'smooth criminal']
기존의 dict는 이미 있는 key : value를 다시 넣으면 새로운 value가 덮어쓰기 되는데
defaultdict는 value가 리스트로 업데이트가 되어 기존의 value가 사라지지 않는다.
============================================================================
sum(), all(), any()
def test01():
# 1. list, tuple 객체의 요소의 합을 출력하자
list_data = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
res = sum(list_data)
print(list_data)
print(res)
test01()
#result
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
55
def test02(): # list 요소가 bool값 (all, any) all() : And, And.... any() : or, or....
'''
True = 1, False = 0
all() : list의 모든 요소가 참인 경우에만 True를 리턴. 하나라도 거짓이 있으면 False
any() : list의 모든 요소가 거짓인 경우에만 False를 리턴. 하나라도 거짓이 있으면 True
'''
list_data1 = [True, True, True]
list_data2 = [True, False, True]
print(all(list_data1))
print(all(list_data2))
print(any(list_data1))
print(any(list_data2))
test02()
#result
True
False
True
True
============================================================================
import string, ord(char), chr(int)
import string
def test01():
print(string.ascii_uppercase)
for i in string.ascii_uppercase:
print(f"{i} ===> {ord(i)}", end=", ")
print()
for i in string.ascii_lowercase:
print(f"{i} ===> {ord(i)}", end=", ")
print()
for i in range(65, 91):
print(f"{i} ===> {chr(i)}", end=", ")
test01()
#result
ABCDEFGHIJKLMNOPQRSTUVWXYZ
A ===> 65, B ===> 66, ... Z ===> 90,
a ===> 97, b ===> 98, ... z ===> 122,
65 ===> A, 66 ===> B, ... 90 ===> Z,
============================================================================
import numpy as np (맛보기)
# numpy
import numpy as np
import random
# 한 개의 주사위를 360번 던져서 3의 배수의 눈이 나오는 횟수를 구하는 것을 1000번 하고
# 1000번의 결과를 x = []라는 변수에 넣어 x에 대한 평균, 분산, 표준편차를 구하자
def test():
dice = [1, 2, 3, 4, 5, 6]
x = []
for i in range(1000): # 1000번 반복 수행
count = 0
for j in range(360):
res = random.choice(dice) # dice list 중 랜덤으로 하나의 값을 res에 저장
if res % 3 == 0: # 그 주사위의 눈을 3으로 나눈 나머지 값이 0이면
count += 1 # 카운트를 1씩 증가
x.append(count)
print(np.mean(x)) # 평균
print(np.var(x)) # 분산
print(np.std(x)) # 표준편차
test()
#result 수행할 때마다 당연히 결과가 다름
120.181
75.348239
8.68033634140982