본문 바로가기

python

사전

사전

  • 사전(dictionary) : 순서가 없는 key-value 쌍의 집합
  • 리스트는 인덱스 0부터 시작해서 순서대로 채워지고, 사전은 순서가 없어서 아무 값을 쓸 수 있다.
dict1 = {}
print(type(dict1))

결과

 

key가 정수

dict1에 key-value 쌍을 추가

dict1 = {}

dict1[5] = 25
dict1[2] = 4
dict1[3] = 9

print(dict1)

결과

 

key가 정수 X

dict1 = {}

dict1['chocolate'] = 'food'
dict1['me'] = 'preson'
dict1['apple juice'] = 'drinkables'

print(dict1['me'])
print(dict1['chocolate'])

결과

 

사전의 key, value 받아오기

key 받아오기 : 사전이름.keys( )
value 받아오기 : 사전이름.values( )

사전에 어떤 key가 있는지 확인하기

key 확인 : '어떤 key' in 사전이름.keys( )
value 확인 : '어떤 value' in 사전이름.values( )

사전의 key 값들을 리스트로 형 변환

key 리스트 변환 : 리스트 이름 = list(사전이름.keys( ))
value 리스트 변환 : 리스트이름 = list(사전이름.values( ))
dict1 = {}

dict1['chocolate'] = 'food'
dict1['me'] = 'preson'
dict1['apple juice'] = 'drinkables'

print(dict1.keys()) # 사전의 키 가져오기
print(dict1.values()) # 사전의 값 가져오기

# 사전에 어떤 키가 있는지
print('door' in dict1.keys())
print('me' in dict1.keys())

# 사전에 어떤 값이 있는지
print('food' in dict1.values())
print('book' in dict1.values())

# 사전의 키들을 리스트로 변환
dict1_keys = list(dict1.keys())
print(type(dict1_keys))

# 사전의 값들을 리스트로 변환
dict1_values = list(dict1.values())
print(type(dict1_values))

결과

 


랜덤 단어 퀴즈


# 랜덤 사용하기 위해
from random import randint
# 파일 불러오기
in_file = open('vocabulary.txt', 'r', encoding="utf-8")

word_book = {} # 사전
temp = '' # 영어 입력할 때 넣을 값
result = '' # 정답이 들어갈 곳

#vocabulary의 값을 word_book에 넣기
for line in in_file:
    data = line.strip().split(":")
    word_book['%s' % data[0]] = '%s' % data[1]

# 한글을 리스트화
k_list = list(word_book.keys())

# 사전 실행
while True:
    # 한글 값 랜덤으로 생성
    k_random = k_list[randint(0,len(k_list)-1)]
    result = word_book['%s' % k_random] #정답 넣기
    temp = input("%s : " % k_random) # 값 입력

    # 'q'를 입력해서 끝낼건지
    if temp == 'q':
        break

    # 맞았는지 아닌지 판정
    elif result == temp:
        print("맞았습니다!")

    else:
        print("틀렸습니다. 정답은 %s입니다." % result)

in_file.close()

결과

'python' 카테고리의 다른 글

알고리즘 1  (0) 2020.03.13
리스트 3  (0) 2020.02.12
리스트 2  (0) 2020.02.12
리스트 1  (0) 2020.02.07
input 함수  (0) 2020.02.06
댓글