스쿼드

[Python] 파이썬 문법 기본문제

kinggoddino 2024. 7. 30.

스쿼드

# 숙제 - 40
# 빈 딕셔너리에 키: name, 값, 본인 이름을 추가하고 출력

dict1 = {}
dict1['name'] = '서원'
print(dict1)
# 숙제 - 41
# {'name': 'won', 'age': 1000} 에서 키 age의 값을 출력

dict1 = {'name':'won', 'age':'1000'}
print(dict1['age'])
# 숙제 - 42
# {'apple': 111, 'banana': 222, 'cherry': 333} 에서 모든 키 출력

dict1 = {'apple': 111, 'banana': 222, 'cherry': 333}
print(dict1.keys())
# 숙제 - 43
# {'apple': 111, 'banana': 222, 'cherry': 'babo'} 에서 모든 값 출력

dict1 = {'apple': 111, 'banana': 222, 'cherry': 'babo'}
print(dict1.values())
# 숙제 - 44
# {'apple': 111, 'banana': 222, 'cherry': 'babo'} 에서 값이 babo가 있다면 babo 출력

dict1 = {'apple': 111, 'banana': 222, 'cherry': 'babo'}
for v in dict1.values():
    if v == 'babo':
        print(v)
# 숙제 - 45
# {'apple': 111, 'banana': 222, 'cherry': 'babo'} 에서 apple 삭제 후 출력

dict1 = {'apple': 111, 'banana': 222, 'cherry': 'babo'}
dict1.pop('apple')
print(dict1)
# 숙제 - 46
# {'apple': 111, 'banana': 222, 'cherry': 'babo'} 에서 banana의 값을 babooo로 수정

dict1 = {'apple': 111, 'banana': 222, 'cherry': 'babo'}
dict1['banana'] = 'babooo'
print(dict1)
# 숙제 - 47
# {'a': 1, 'b': 2}와 {'c': 3, 'd': 4}를 합치시오,

dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
dict1.update(dict2)
print(dict1)

#-------------------------

dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
merge = dict1 | dict2
print(merge)
# 숙제 - 48
# {'apple': 111, 'banana': 222, 'cherry': 'babo'}에서 모든 키와 모든 값을 순회하여 출력

dict1 = {'apple': 111, 'banana': 222, 'cherry': 'babo'}
for k, v in dict1.items():
    print(k, v)
# 숙제 - 49
# {'apple': 111, 'banana': 222, 'cherry': 'babo'} 키 'cherry'의 '값'을 출력 하시오
# 없을 경우 None이라고 출력

dict1 = {'apple': 111, 'banana': 222, 'cherry': 'babo'}
print(dict1.get('cherry', 'None'))
# 숙제 - 50
# {'apple': 111, 'banana': 222, 'cherry': 'babo'} 의 길이 출력

dict1 = {'apple': 111, 'banana': 222, 'cherry': 'babo'}
print(len(dict1))
# 숙제 - 52
# {'apple': 111, 'banana': '222', 'cherry': 333} 에 값을 합산하라
# hint 형변환

dict1 = {'apple': 111, 'banana': '222', 'cherry': 333}
list1 =[]
for v in dict1.values():
    if type(v) != int:
        list1.append(int(v))
    else:
        list1.append(v)
print(sum(list1))

#------------------------------

dict1 = {'apple': 111, 'banana': '222', 'cherry': 333}
print(sum(int(v) for v in dict1.values()))
# 숙제 - 53
# 문자열 "abcd abcd babo'에서 각 문자에 개수를 딕셔너리에 저장 후 출력
# 출력 시 -> {'a': 3, 'b': 4, 'c': 2, 'd': 2, ' ': 2, 'o': 1}

dict1 = {}
words = "abcd abcd babo"

for char in words:
    if char not in dict1:
        dict1.update({char: 1})
    else:
        dict1[char] += 1

print(dict1)
# 숙제 - 54
# {'apple': 111, 'banana': 222, 'cherry': 'babo'}에서 키와 값을 각각 리스트로 변환 후 출력

dict1 = {'apple': 111, 'banana': 222, 'cherry': 'babo'}
list_key = []
list_value = []
for k, v in dict1.items():
    list_key.append(k)
    list_value.append(v)

print(list_key)
print(list_value)

#---------------------------------

dict1 = {'apple': 111, 'banana': 222, 'cherry': 'babo'}
print(list(dict1.keys()))
print(list(dict1.values()))
# 숙제 - 55
# {'apple': 111, 'banana': 222, 'cherry': 'babo'} 에서 값 babo에 해당하는 키를 출력

dict = {'apple': 111, 'banana': 222, 'cherry': 'babo'}
for k, v in dict.items():
    if v == 'babo':
        print(k)
# 숙제 - 56
# 중첩 딕셔너리를 만드시오

dinosaur = {'spino':{}, 'allo':{}, 'stego':{}}
dinosaur['spino'] = {'period': 'Cretaceous', 'age': 22, 'diet': 'carnivore'}
dinosaur['allo'] = {'period': 'Jurassic', 'age': 13, 'diet': 'carnivore'}
dinosaur['stego'] = {'period': 'Cretaceous', 'age': 7, 'diet': 'herbivore'}

print(dinosaur)
# 숙제 - 57
# 딕셔너리와 리스트의 차이점에 대해
# 메모리?

딕셔너리
1) 순서없음. 키-밸류 쌍
2) 키를 통해 검색
3) 같은 값 어펜드 하면 중복으로 들감
4) 연속된 메모리 공간 사용(배열이랑 비슷?)

리스트
1) 순서가 있음
2) 인덱스를 통해 검색
3) 같은 값 업데이트 하면 후자로 대체됨
4) 키를 해싱하여 메모리 특정 위치에 밸류 저장(해시테이블)
# 숙제 - 58
# 딕셔너리에 get 메소드 사용 용도와 사용하는 이유에 대해

내가 찾으려는 키가 딕셔너리에 없을 때도 에러 없이 통과할 수 있다.
키 없는 경우 반환할 디폴트값도 내가 지정할 수 있다.
그래서 KeyError에 대한 예외처리 안해도 됨

dict1 = {'name': 'won', 'age': 40, 'height': 160}

# dict[key]로 검색할 경우
print(dict1['girlfriend'])
# KeyError: 'girlfriend' (오류)

# dict.get(key)로 검색할 경우
print(dict1.get('girlfriend', 'Unkown'))
# Unkown (디폴트 반환)

# 디폴트값을 설정하지 않은 경우
print(dict1.get('girlfriend'))
# None (None 반환)

 

집합

 

# 숙제 - 59
# [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]에서 중복 값 제거

list1 = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
print(set(list1))
# 숙제 - 60
# {1, 2, 3}에 4를 추가 후 출력

set1 = {1, 2, 3}
set1.add(4)
print(set1)
# 숙제 - 61
# {1, 2, 3, 4} 4 제거 후 출력

set1 = {1, 2, 3, 4}
set1.remove(4)
print(set1)
# 숙제 - 62
# {1, 2, 3} 2가 있는지 확인

set1 = {1, 2, 3}
print(2 in set1)
# True
# 숙제 - 63
# 빈 집합 생성 후 타입 출력

set1 = {}
print(type(set1))  # <class 'dict'>
# 엥?? 딕셔너리로 인식한다. 그렇네.. 딕셔너리네

set1 = set({})
print(type(set1))  # <class 'set'>
# set 함수를 이용해서 빈 집합 생성
# 숙제 - 64
# {1, 2, 3, 4}와, {3, 4, 5, 6}의 합집합 출력

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1 | set2)
# 숙제 - 65
# {1, 2, 3, 4}와, {3, 4, 5, 6}의 교집합 출력

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1 & set2)
# 숙제 - 66
# {1, 2, 3, 4}와, {3, 4, 5, 6}의 차집합 출력

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1 - set2)
# 귀찮아
# 숙제 - 67
# # {1, 2, 3, 4}에 {3, 4, 5, 6}의 추가 후 출력

set1 = {1, 2, 3, 4}
set1.update({3, 4, 5, 6})

print(set1)
# {1, 2, 3, 4, 5, 6} 중복은 알아서 추가 안됨
# 숙제 - 68
# {1, 2, 3, 4} 모든 요소 제거

set1 = {1, 2, 3, 4}
set1.clear()

print(set1)
# set()
# 숙제 - 69
# {1, 2, 3}과 {2, 3, 4} 교집합 구한 결과와 {3, 4, 5} 합집합 결과 출력

set1 = {1, 2, 3}
set2 = {2, 3, 4}
set3 = {3, 4, 5}

print(set1 & set2 | set3)
# {2, 3, 4, 5} 오 한번에 연산도 된다

 

 

함수

# 숙제 - 70
# hi 함수를 호출 시 hi 출력

def hi():
    print("hi")

hi()
# hi
# 숙제 - 71
# hi 함수 호출 사 hi "여러분들의 이름"

def hi():
    print(f'hi "여러분들의 이름"')
    
hi()
# hi "여러분들의 이름"
# 숙제 - 72
# 사용자가 입력한 두 개의 숫자를 받아 더해주는 함수 만드세요

def plus(n):
    numbers = []
    for i in range(n):
        numbers.append(int(input(f'{i+1}번째 수를 입력해라 : ')))
    return sum(numbers)

print(plus(2))

 

 

 

 

 

 

 

 

 

 

 


 

'스쿼드' 카테고리의 다른 글

[스쿼드] 캡슐화  (0) 2024.08.06
[스쿼드] Matrix 만들기  (0) 2024.08.05
[스쿼드] 계산기 만들기  (0) 2024.08.02
[Python] 파이썬 문법 기본문제  (0) 2024.07.31
[Python] 파이썬 문법 기본문제  (0) 2024.07.29