Python字典不匹配所需的键

2024-09-29 01:24:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本字典。例如

dict = { "wd":"well done", "lol":"laugh out loud"}

问题是,如果文本中有类似"lol?"的内容,那么它根本就没有展开。我正在用下面的代码替换字典:

^{2}$

问题是由于'lol''?'之间缺少空格。我如何解决这个问题?在

之后,建议更新代码如下:

 dict1 = {
          "wd":"well done",
          "lol":"laugh out loud"
         }

 def contractions(text, contractions_dict=dict1):
     for key in contractions_dict:
         text = text.replace(key, contractions_dict[key])
     return text

 text = "lol?"
 text=contractions(text)
 print(text)

对于上面的示例,但是在长文本中,此代码正在进行不希望的替换。在

例如,lwhyear olduckwhyeahnt lookingia和团队努力表达对whyear oldwhyear olduckwhyeahhandal seato的理解

这是我得到的实际数据的一部分结果。需要帮助。在


Tags: key代码text文本字典outdictlol
3条回答

如果您查看visaversa,有一个更好的解决方案,对于每个键,用该键的值替换整个文本中的它:

def contractions(text, contractions_dict=dict):
    for k, v in contractions_dict.items():
        text = text.replace(k,v)
    return text

另外,请注意:

DO NOT use dict as a variable name, this name is a built-in in python and you will override its functionality.

样本输入和输出:

^{pr2}$

你的错误来自于你拆分文本的方式。python中str.split()的默认大小写在空白处,这意味着“wtf?”不是分开的。在

正如您在documentation中看到的那样结构分裂()可以接收要使用的分隔字符列表。在

您可以使用以下方法解决此特定问题:

text.split(sep=[' ', '?'])

但最有可能的是,您希望更多的字符用作分隔点。在

不要检查文本是否是字典的一部分,而是遍历字典并检查键是否在文本中。但不建议这样做,因为它包含嵌套循环。在

def contractions(text, contractions_dict=dict):
    for word in text.split():
        for key in contradictions_dict:
            if key in word:
                text = text.replace(word, contractions_dict[key])
    return text

相反,您可能希望使用replace方法自动替换每个键的每次出现。“替换”将自动查找并替换该单词。不需要自己迭代文本。在

^{pr2}$

相关问题 更多 >