猿问

在字典中搜索字符串值

我想根据字典 D 将字符串 S 中的一些单词更改为其他单词。例如,对于 S 和 D 的以下值:


S="I don't know, who you are?"

D={"doesn't":"does not","don't":"do not"}

我应该得到


S="I do not know, who you are?"

为此,我编写以下代码:


L=str.split(' ')

index = [D[x] if x in D.keys() for x in L]

但这给出了语法错误。请帮助我解决此错误,以便我能够获得如上所示的所需输出。如果这个问题有更好的解决方案,请解释一下。


忽然笑
浏览 120回答 2
2回答

红颜莎娜

您也可以检查这一班轮答案:S="I don't know, who you are?"D={"doesn't":"does not","don't":"do not"}result = ' '.join(map(lambda x: D[x] if D.get(x) else x, S.split()))print(result)输出:'I do not know, who you are?'

qq_笑_17

如果该值不在字典中,则只需获取该字符串值。result = ' '.join(D.get(x,x) for x in S.split(' '))语法错误的原因[D[x] if x in D.keys() for x in L]是,如果没有附带条件,则if需要进行后续操作。
随时随地看视频慕课网APP
我要回答