python - 如何移动字符串中的单词?

标签 python python-2.7

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/

相关文章:

python - 向 django 查询添加虚拟字段

python - python中巨大矩阵的矩阵运算

python - 在 ubuntu 14.04 上安装 tkinter

algorithm - 来自 3D 点集合的边界框

python - 下载 CSV 文件,然后使用 Python 上传到 MySQL

python - 将 pandas 数据框中列的超出定义间隔限制的值设置为给定值(例如 NaN)

python - 为pandas groupby中的不同特征分配不同的聚合函数

python - Discord.py 重写自定义错误

python - 使用Scrapy时如何导出为csv?

python - 如何知道在python中为不同的属性分配相同的值哪个更有优势