경기도미래기술학교 AI개발자 부트캠프 7일차 TIL - 딕셔너리, for문에 대해서, 함수

2023. 5. 16. 18:33python

반응형

 

 

오늘은 딕셔너리에 대해 배웠다. 예전에 자바에서 비슷하게 배운 hashmap 같은 것과 비슷한데 내가 공부를 깊게 안해서 그런가 파이썬은 독특해서 그런가 처음 보는 것도 많고 응용할 것도 많고 신기하다. 천천히 꾸준하게 하자.

 

class_score = {}
print(type(class_score))
class_score['Mike'] = 83
class_score['Alice'] = 92
class_score['Tina'] = 79
class_score['Ron'] = 88
print(class_score['Alice'])
if "Paul" in class_score:
    print("Paul 있습니다.")
else:print("Paul 없습니다.")

빈 딕셔너리에 key, value 값을 넣고 내가 잘 못쓰는 in을 사용해서 value를 확인할 수 있다.

 

solar1=['태양','수성','금성','지구','화성','목성','토성','천왕성']
solar2 = ['Sun','Mercury','Venus','Earth','Mars','Jupiter','Saturn','Uranus']
solar3={}

for i in range(len(solar1)):
    key=solar1[i]
    solar3[key]=solar2[i]

print(solar3)

다른 연습문제에서는 리스트 2개에 빈 딕셔너리를 매칭 시키는 것이었다. 여기서는 반복을 해야 해서 len을 사용했는데 필요가 없을지도 모르겠다. 아무튼 파이썬의 for문은 객체가 넘어오고 내가 정한 i라는 변수에는 객체의 요소가 들어온다. (늘 명시적인 단어를 기억하자. 소통해야 한다.)

 

names={'Mary':10999,'Sams':200, 'Almy':9778,'Tom':20254, 'Michale':27113,'Kelly':7855}


countBaby=0
for i in names:
    #print(names['Mary','Sams'...])
    countBaby+=names[i]

지금 이것도 마찬가지. 자바의 for문과는 다르게 여기서의 names[i]는 0,1,2,3 이런 식이 아니다. names['key']이기 때문이다.

 

 

챗GPT와 소통을 해보니 알집처럼 묶어주는  zip 이라는 메서드도 있다. 참 희한한 기능 많다.

 

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
names = ['John', 'Alice', 'Bob']

zipped = zip(numbers, letters, names)

for item in zipped:
    print(item)

get 함수도 알려주셨다. 키값을 가져오고싶을 때 쓰는데 없을 때도 인수를 정해서 세팅할 수 있다.

my_dict = {"name": "John", "age": 30}
value = my_dict.get("gender")
print(value)  # None (키가 존재하지 않기 때문에 None 반환)

value = my_dict.get("gender", "Unknown")
print(value)  # "Unknown" (키가 존재하지 않기 때문에 기본값인 "Unknown" 반환)

 

노래 가사 중 가장 많은 카운트를 체크했다. count 메서드는 인수의 값 전체 수를 체크해준다. 종종 쓸일이 있을 듯 하다.

lyrics = "If I were a boy, billieJean, someone to love"
alphabet_count = {}

for char in lyrics:
    if char.isalpha():
        char = char.lower()
        alphabet_count[char] = alphabet_count.get(char, 0) + 1

most_frequent_alphabet = max(alphabet_count, key=alphabet_count.get)
print(alphabet_count)
print(most_frequent_alphabet)

 

 

그리고 이제 함수를 시작했다. 재밌었으면 좋겠다. 공부 열심히 해야겠다.

728x90