【问题标题】:Translate a phrase using dictionary? (python)用字典翻译一个短语? (Python)
【发布时间】:2019-08-28 21:35:14
【问题描述】:

我必须用我的字典把这句话粗略翻译成英文,但我不知道怎么做。

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

【问题讨论】:

    标签: python dictionary translate


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      你快到了:

      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"]
      

      但是,如果该键不在字典中,您将收到一个键错误并且您的程序将崩溃。另一种方法是使用 get():

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

      如果存在,这将返回键的值,如果不存在,则返回您在第二个参数中声明的任何内容(此处为空字符串)。字典的键可以是您想要的任何不可变对象。在你的情况下是一个字符串。

      【讨论】:

        【解决方案3】:

        您可以尽可能使用 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(),以处理单词后跟标点符号等情况。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-06-04
          • 2010-12-23
          • 2014-06-08
          • 2022-11-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多