def translate(sent):
    trans={"merry":"god", "christmas":"jul", "and":"och", "happy":"gott", "new":"nytt", "year":"år"}
    word_list = sent.split(' ')
    for word in word_list:
    for i,j in trans.items():
        if j == word:
            return sent.replace(word, i)

>>>translate('xmas greeting: god jul och gott nytt år') 
'xmas greeting: merry jul och gott nytt år'

Saya mencoba menulis fungsi yang akan mengambil string, ganti kata-kata yang cocok dengan nilai dalam kamus dengan kunci yang sesuai. Ini benar-benar membuat frustrasi karena saya hanya dapat mengganti satu kata (menggunakan metode ganti). Bagaimana cara mengganti lebih dari satu kata?

1
pjdavis 11 Maret 2017, 20:27

2 jawaban

Jawaban Terbaik

Anda perlu menetapkan kembali hasil yang diganti ke sent, setelah loop for habis, lalu kembalikan sent:

def translate(sent):
    trans={"merry":"god", "christmas":"jul", "and":"och", "happy":"gott", "new":"nytt", "year":"år"}
    word_list = sent.split(' ')
    for word in word_list:
        for i,j in trans.items():
            if j == word:
                sent = sent.replace(word, i)
    return sent

translate('xmas greeting: god jul och gott nytt år') 
# 'xmas greeting: merry christmas and happy new year'
3
Psidom 11 Maret 2017, 17:31
mystring = 'this is my table pen is on the table '

trans_table = {'this':'that' , 'is':'was' , 'table':'chair'}

final_string = ''

words = mystring.split()

for word in words:
  if word in trans_table:
    new_word = trans_table[word]
    final_string = final_string + new_word + ' '
  else:    
    final_string = final_string + word + ' '

print('Original String :', mystring)
print('Final String :' , final_string)
0
Fuji Komalan 13 Maret 2017, 08:19