将字符串循环到网格中可以采用哪些逻辑?
例如,如果我想要'水'打印
water
aterw
terwa
erwat
rwate
我正在尝试一些事情,
word = 'water'
for number, letter in enumerate(word):
if number < len(word):
print a + word[1:] + word[:1]
我不理解我是如何实现这一点的,正如你从我的尝试中看到的那样。 谢谢你的帮助。
答案 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