Python字符串迭代

时间:2013-08-14 11:03:58

标签: python string loops

将字符串循环到网格中可以采用哪些逻辑?

例如,如果我想要'水'打印

water
aterw
terwa
erwat
rwate

我正在尝试一些事情,

word = 'water'
for number, letter in enumerate(word):
    if number < len(word):
        print a + word[1:] + word[:1]

我不理解我是如何实现这一点的,正如你从我的尝试中看到的那样。 谢谢你的帮助。

3 个答案:

答案 0 :(得分:5)

In [2]: word = 'water'
   ...: for i in range(len(word)):
   ...:     print(word[i:] + word[:i])
water
aterw
terwa
erwat
rwate

i循环遍历所有可能的索引,从该索引开始后缀,并将其添加到字符串中,获取所有可能的旋转。

答案 1 :(得分:5)

你可以做到

word = 'water'
for i in xrange(len(word)):
   print word[i:] + word[:i]

答案 2 :(得分:4)

使用collections.deque,它有rotate方法可以完成您的工作。

  

将deque n步骤向右旋转。如果n为负数,则转为   剩下。向右旋转一步相当于:   d.appendleft(d.pop())

<强>演示:

from collections import deque
d = deque('water')
for _ in xrange(len(d)):
    print ''.join(d)
    d.rotate(-1)

<强>输出:

water
aterw
terwa
erwat
rwate