在 Python 中旋转字符串

新手上路,请多包涵

我试图在 Python 中将字符串 HELLO 转换为 OHELL 。但是如果不使用循环就无法旋转它。如何仅用 1-2 行代码来获得所需的模式?

原文由 Mohit Gidwani 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 430
2 个回答

您可以切片和添加字符串:

 >>> s = 'HELLO'
>>> s[-1] + s[:-1]
'OHELL'

这给你最后一个字符:

 >>> s[-1]
'O'

除了最后一个,这一切都是:

 >>> s[:-1]
'HELL'

最后,用 + 添加它们。

原文由 Mike Müller 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是一种方法:

 def rotate(strg, n):
    return strg[n:] + strg[:n]

rotate('HELLO', -1)  # 'OHELL'

或者, collections.deque (“双端队列”)针对队列相关操作进行了优化。它有一个专用的 rotate() 方法:

 from collections import deque

items = deque('HELLO')
items.rotate(1)

''.join(items)  # 'OHELL'

原文由 jpp 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题