2023. 8. 5. 10:22
파이썬
728x90
반응형
# 문자 번역하기
EtoF = {'bread':'pain', 'wine':'vin', 'with':'avec', 'I':'Je',
'eat':'mange', 'drink':'bois', 'John':'Jean',
'friends':'amis', 'and':'et', 'of':'du', 'red':'rouge'}
FtoE = {'pain':'bread', 'vin':'wine', 'avec':'with', 'Je':'I',
'mange':'eat', 'bois':'drink', 'Jean':'John',
'amis':'friends', 'et':'and', 'du':'of', 'rouge':'red'}
dicts = {'English to French' :EtoF, 'French to English':FtoE}
def translateWord(word, dictionary):
if word in dictionary.keys():
return dictionary[word]
elif word !='':
return '"' + word + '"'
return word
def translate(phrase, dicts, direction):
UCLetters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
LCLetters = 'abcdefghijklmnopqrstuvwxyz'
letters = UCLetters + LCLetters
directionay = dicts[direction]
translation = ''
word = ''
for c in phrase:
if c in letters:
word = word + c
else:
translation = translation + translateWord(word, directionay) + c
word = ''
return translation + ' ' + translateWord(word, directionay)
print(translate('I drink good red wine, and eat bread.',dicts, 'English to French'))
print(translate('Je bois du vin rouge.',dicts, 'French to English'))
출력 결과
Je bois "good" rouge vin, et mange pain.
I drink of wine red.
리스트와 같이 딕셔너리에는 많은 유용한 메소드들이 있다. 튜플처럼 변형 불가능한 객체들은 딕셔너리의 키로 사용할 수 있다.
딕셔너리에 공통적으로 사용 가능한 연산들
len(d) : d에 들어있는 개수를 반환한다.
d.keys() : d에 들어있는 키들을 리스트로 반환한다. (python 2.x)
d에 들어있는 키들을 dict_keys로 반환한다. (python 3.x)
d.values() : d에 들어있는 값들을 리스트로 반환한다. (python 2.x)
d에 들어있는 키들을 dict_values로 반환한다. (python 3.x)
k in d : d에 키 k가 있을 때 True를 반환한다.
d[k] : d에서 키 k와 쌍인 값을 반환한다.
d.get(k, v) : d에 k가 있을 때 d[k]를 반환하며 없을 경우 v를 반환한다.
d[k] = v : d에서 값 v를 키 k와 연결한다. 만약 k에 이미 연결된 값이 있을 경우 그 값을 대체한다.
del d[k] : 키 k를 d에서 제거한다.
for k in d : d에 들어있는 키를 하나씩 돌아가면서 접근한다.
728x90
반응형
'파이썬' 카테고리의 다른 글
(파이썬) 추상 데이터 타입과 클래스 (0) | 2023.08.07 |
---|---|
(파이썬) 예외 처리하기 (0) | 2023.08.06 |
(파이썬) 딕셔너리(Dictionary) (1) | 2023.08.04 |
(파이썬) 문자열, 튜플, 리스트 (0) | 2023.08.04 |
(파이썬) 함수를 객체로 사용하기 (0) | 2023.08.04 |