2014-11-06 3 views
0

Мне нужно сделать грубый перевод фразы на английский, используя мой словарь, но я не знаю, как это сделать.Перевести фразу, используя словарь? (python)

c1 = "befreit" 
c2 = "baeche" 
c3 = "eise" 
c4 = "sind" 
c5 = "strom" 
c6 = "und" 
c7 = "vom" 

mydict = {c1:"liberated", c2:"brooks", c3:"ice", c4:"are", c5:"river", c6:"and", c7:"from"} 

print(mydict.keys()) 
print(mydict.values()) 

phrase = "vom eise befreit sind strom und baeche" 
print(phrase) 

phrase.split() 
for x in phrase: 
    #something goes here 

ответ

1

магазина как в вашем Словаре как клавиши Н. значения:

mydict = {"befreit":"liberated", "baeche":"brooks", "eise":"ice", "sind":"are", "strom":"river", "und":"and", "vom":"from"} 


phrase = "vom eise befreit sind strom und baeche" 
print(" ".join([mydict[w] for w in phrase.split()])) 
from ice liberated are river and brooks 
0

Вы можете использовать Dict для отображения каждого слова в исходной фразе на нужном язык, всякий раз, когда это возможно:

c1 = "befreit" 
c2 = "baeche" 
c3 = "eise" 
c4 = "sind" 
c5 = "strom" 
c6 = "und" 
c7 = "vom" 

mydict = {c1:"liberated", c2:"brooks", c3:"ice", c4:"are", c5:"river", c6:"and", c7:"from"} 

phrase = "vom eise befreit sind strom und baeche" 
translated = " ".join([mydict.get(p, p) for p in phrase.split(' ')]) 
print translated 
# from ice liberated are river and brooks 

Обратите внимание, что вам может понадобиться, чтобы иметь более осторожную схему лексемизации вместо того, чтобы использовать split(), для обработки таких случаев, как слова, сопровождаемые пунктуацией.

0

Вы почти там:

c1 = "befreit" 
c2 = "baeche" 
c3 = "eise" 
c4 = "sind" 
c5 = "strom" 
c6 = "und" 
c7 = "vom" 

mydict = {c1:"liberated", c2:"brooks", c3:"ice", c4:"are", c5:"river", c6:"and", c7:"from"} 

print(mydict.keys()) 
print(mydict.values()) 

phrase = "vom eise befreit sind strom und baeche" 
print(phrase) 

translated_string = " ".join([mydict.get(e, "") for e in phrase.split(" ")]) 
print translated_string 

Словари, глядя на синтаксисе, работают очень похожи на списки: Введя

element = mylist[0] 

вы задаете список «дайте мне элемент по индексу 0" . словарей вы можете сделать что-то подобное:

value = mydict["key"] 

Однако, если ключ отсутствует в словаре, вы получите исключение KeyError и программа зависнет. Альтернативный метод заключается в использовании Get():

value = mydict.get("key","") 

Это будет возвращать значение ключа, если он существует, и если нет, то вернуть все, что вы заявили, во втором аргументе (здесь пустая строка) , Ключи для словарей могут быть любыми неизменяемыми объектами, которые вы хотите. В вашем случае строка.