【发布时间】:2016-09-07 00:21:28
【问题描述】:
我有一句话,比方说:
敏捷的棕狐跳过懒惰的狗
我想创建一个带有 2 个参数、一个句子和一个要忽略的事物列表的函数。它返回带有反转单词的句子,但是它应该忽略我在第二个参数中传递给它的东西。这是我目前拥有的:
def main(sentence, ignores):
return ' '.join(word[::-1] if word not in ignores else word for word in sentence.split())
但这只有在我像这样传递第二个列表时才有效:
print(main('The quick brown fox jumps over the lazy dog', ['quick', 'lazy']))
但是,我想传递这样的列表:
print(main('The quick brown fox jumps over the lazy dog', ['quick brown', 'lazy dog']))
预期结果:
ehT quick brown xof spmuj revo eht lazy dog
所以基本上第二个参数(列表)将包含应该忽略的句子部分。不只是一个词。
我必须为此使用正则表达式吗?我试图避免它......
【问题讨论】:
-
您是忽略单词还是忽略整个短语?
-
我试图忽略完整的短语。
-
所以如果棕色后来出现,不是很快就应该被反转?
-
如果只有“棕色”,则应将其反转。 'quick brown' 不应该颠倒过来..
-
所以这几乎就像为这些忽略创建临时占位符一样。也许我应该这样做?只需使用
replace在文本中创建{}这些,然后再执行format(ignores)。
标签: python python-3.x