Python 2.7 中是否有一种“ native ”方式可以在较长的字符串中移动单词(以空格分隔的子字符串)?基本上,我正在寻找的是:
ret = 'The quick brown fox jumps over the lazy dog'.move_word('quick',2)
# ret = 'The brown fox quick jumps over the lazy dog'
我的想法是通过编写一个函数来拆分列表,遍历列表以查找匹配项,然后在找到单词时重新排序。我的问题实际上是找出是否有“灵活的”/Pythonic 方法来代替执行此操作。
谢谢!
编辑:根据下面的评论:上面示例中的数字参数旨在指定单词数的“增量”。对于上面的示例,2 的意思是“将‘快速’2 个词向右移动”。
最佳答案
不确定我是否会称其为“光滑”,但它可以完成工作并且非常简单:
def reorder(s, word, delta):
words = s.split()
oldpos = words.index(word)
words.insert(oldpos+delta, words.pop(oldpos))
return ' '.join(words)
print reorder('The quick brown fox jumps over the lazy dog', 'quick', 2)
(我假设您示例中的 2 是移动单词的位置数。)
关于python - 如何移动字符串中的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13574132/