Python 2.7中是否存在一种"原生"方式来在一个较长的字符串中移动一个单词(以空格分隔的子字符串)?基本上,我正在寻找的是:
ret = 'The quick brown fox jumps over the lazy dog'.move_word('quick',2)
# ret = 'The brown fox quick jumps over the lazy dog'
Run Code Online (Sandbox Code Playgroud)
我的想法是通过编写一个函数来分割成一个列表,遍历列表中的匹配,然后在找到单词时重新排序.我的问题是关于找出是否有"光滑"/ Pythonic方法来做到这一点.
谢谢!
编辑:以下评论:上面示例中的数字参数旨在指定单词数量的"delta".对于上面的例子,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)
Run Code Online (Sandbox Code Playgroud)
(我假设你的例子中的2是移动单词的位置数.)
| 归档时间: |
|
| 查看次数: |
2797 次 |
| 最近记录: |