본문 바로가기
개발일지/Python

[복기] 파이썬 딕셔너리 키값에 해당하는 용어가 다른 리스트에 있다면 키값에 해당하는 벨류값으로 대체해주기

by 다니엘의 개발 이야기 2022. 5. 12.
320x100
'''
#문장에서 비속어를 찾고 비속어를 표준어로 변경하는 프로그램을 만들어보자
# 내 코드
# 실패. 그냥 리스트 밖으로 꺼내면서 하나의 문장이 되게끔 만드는 역할만 했다.
words = '강도는 서로 쪼개다, 짭새를 보고 빠르게 다돌리며 먹튀했다.'

right_words = {'꺼지다':'가다','쩔다':'엄청나다','짭새':'경찰관','꼽사리':'중간에 낀 사람',
               '먹튀':'먹고 도망','지린다':'겁을 먹다','쪼개다':'웃다','뒷담 까다':'험담하다'}

new_list = words.split()
print(new_list)

for i in range(len(words)):
    if i in right_words.keys():
        words[i] = right_words.keys()

print( words)

'''

'''
# 해답코드
txt = '강도는 서로 쪼개다, 짭새를 보고 빠르게 다돌리며 먹튀했다.'

words = {'꺼지다':'가다','쩔다':'엄청나다','짭새':'경찰관','꼽사리':'중간에 낀 사람',
               '먹튀':'먹고 도망','지린다':'겁을 먹다','쪼개다':'웃다','뒷담 까다':'험담하다'}

keys = list(words.keys())
print(keys)
# ['꺼지다', '쩔다', '짭새', '꼽사리', '먹튀', '지린다', '쪼개다', '뒷담 까다']

for key in keys:
    if key in txt:
        print(f'key: {key}')
        print(f'words: {key}: {words[key]}')
        # key에 해당 하는 값을 words[key] 값으로 변경하겠다.
        txt = txt.replace(key, words[key])



print(txt)
'''

'''
# 재도전
# 실패 3번하고 성공

txt = '강도는 서로 쪼개다, 짭새를 보고 빠르게 다돌리며 먹튀했다.'

words = {'꺼지다':'가다','쩔다':'엄청나다','짭새':'경찰관','꼽사리':'중간에 낀 사람',
               '먹튀':'먹고 도망','지린다':'겁을 먹다','쪼개다':'웃다','뒷담 까다':'험담하다'}

# 여기를 리스트로 바꿔주는걸 몰랐었다.
keys = list(words.keys())

for i in keys:
    if i in txt:
        # 여기 words[i] 위치의 것을 그냥 keys라고 입력했었다.
        txt = txt.replace(i,words[i])

print(txt)
'''

txt = '강도는 서로 쪼개다, 짭새를 보고 빠르게 다돌리며 먹튀했다.'

words = {'꺼지다':'가다','쩔다':'엄청나다','짭새':'경찰관','꼽사리':'중간에 낀 사람',
               '먹튀':'먹고 도망','지린다':'겁을 먹다','쪼개다':'웃다','뒷담 까다':'험담하다'}

# 이게 전체 주어가 된다.
# words의 키값들이다.
keys = list(words.keys())

# words의 키 값 안에 있는 원소를 하나씩 볼꺼다.
for i in keys:
    # 만약 words의 원소중 txt에 있는 값이 있다면.
    if i in txt:
        # txt 안의 내용을 대체해줄 것이다.
        # words의 원소에 해당하는 값이 txt안에 있다면
        # 그 값을 words의 해당 키값에 해당하는 벨류의 값으로 대체 해줄것이다.
        txt = txt.replace(i, words[i])

print(txt)

 

마지막엔 외워서 차근차근 원리 되짚어보며 해봤지만

아직은 활용의 영역까진 아닌것 같다.

분발하자.

300x250