TIL_Code lion_python(1)

박상욱·2022년 2월 22일
0

python을 배우면서 헷갈렸던 부분들이 비유를 통해 해결되었다.

도대체 왜 변수를 지정하는걸까...?

이렇게 생각하자.

리스트=> 정리상자

ex) box = ["체육복","티셔츠","바지"]
(이름표 = [정리상자])

리스트 추가

box.append("줄넘기")

리스트 추출 (티셔츠)

print( box[2] )

딕셔너리 => 조립식 약통

pills = {"월요일":"주황색 약", "화요일":"초록색 약", "수요일":"알약"}
(이름표 = {조립식 약통})
print(pills.get("알약"))

딕셔너리 추가

pills["목요일"]="주황색과 초록색 알약"

딕셔너리 추출

print( pills["목요일"] )

for문에서의 리스트와 딕셔너리의 차이

리스트

box = ["체육복","티셔츠","바지"]
for x in box:
	print(x)
    
체육복
티셔츠
바지

딕셔너리

pills = {"월요일":"주황색 약", "화요일":"초록색 약", "수요일":"알약"}
for x,y in pills.items():
	print(x)
    print(y)
    
    
주황색 약
화요일
초록색 약
수요일
알약

python에서 집합 (합집합,교집합,차집합)

ex) box = ["체육복","티셔츠","바지"]

box1 = set(["체육복","티셔츠","바지"])
box2= set(["체육복","안경","신발"])
box3 = box1 | box2 (합집합)
box3 = box1 & box2 (교집합)
box3 = box1 - box2 (차집합)

집합은 python의 상징적인 데이터 저장방법이니 꼭 알아두어야 한다. 집합과 리스트의 가장 큰 차이점은 순서가 없다는 것이다. 겹치는 요소에 대해서 합집합,교집합,차집합의 성격으로 처리한다. 리스트와 달리 겹치는 요소가 있을 수 없다.

실습_1 오늘은 사물함에서 뭐 꺼내실?

import random
import time

box = ['교과서','체육복','줄넘기','텀블러']

while True:
    print(box)
    item = input('사물함에 어떤 물건을 집어넣을까요? : ')
    if(item == 'quit'):
        break
    else:
        box.append(item)
print(box)
print()
print('='*40)
print()

set_box=set(box)

while True:
    print(set_box)
    item= input('사물함에 어떤 물건을 뺼까요? : ') 
    if(item == 'quit'):
        break
    else:
        set_box = set_box-set([item])  
        
    집합 연산은 집합끼리만 할 수 있음. 따라서 item이 문자열이어서 연산이 안됨. 따라서 억지로 set 집합을 만들어주어야 함.  

print(set_box,"중에서 랜덤으로 내가 사용할 물건을 선택합니다.")
print('5')
time.sleep(1)
print('4')
time.sleep(1)
print('3')
time.sleep(1)
print('2')
time.sleep(1)
print('1')

print(random.choice(list(set_box)))

    list 형식을 쓰는 이유: 하나를 random으로 뽑으려면 순서가 없는 set()이 아니라 순서가 정해진 list 형태로 변경해주어야 함.

딕셔너리 vs 리스트 안의 딕셔너리의 차이와 쓰임용도

딕셔너리는 질문을 key에다 두고 답변을 value에다 놓음

리스트 안의 딕셔너리는 질문이라는 글자를 key에다 두고 실제 질문 내용을 value에다 놓고, 답변이라는 글자를 key에다 두고 실제 답변 내용을 value에다 놓음.

쓰임에 따라 사용처가 나뉠 듯 하다.

리스트 안의 딕셔너리는 어느 것이 질문이고 어느것이 답변인지 명확하게 알 수 있다는 장점이 있지만 조금은 복잡하고, 딕셔너리는 코드를 작성한 사람만 어느 것이 질문이고 어느 것이 답변인지 알 수 있어 다른 사람과 코드하기에 불편하지만, 간편하다는 장점이 있다.

for문에서의 리스트안의 딕셔너리


특히, 리스트 안의 딕셔너리는 딕셔너리 그 자체로 변수(i)로 저장되는데, 사용자가 입력한 질문만 뽑아오고 싶다면,

딕셔너리의 추출방법인 i['질문']을 사용하면 사용자가 입력한 질문만 딱! 뽑아올 수 있다.

실습_2 이상형이 뭐에요?

total_dictionary = {}

while True:
    question = input("질문을 입력해주세요 : ")
    if question == "q":
        break
    else:
        total_dictionary[question] = ""

for i in total_dictionary:
    print(i)
    answer = input("답변을 입력해주세요 : ")
    total_dictionary[i] = answer
print(total_dictionary)
profile
기획,디자이너,개발 찍먹파입니다.

0개의 댓글