我希望python生成一个列表[['A', 'B', 'C']]
,然后添加另一个列表,使其成为[['A', 'B', 'C'], ['B', 'C', 'A']]
并继续直到它完成。我已经在python上工作了一段时间,但似乎无法找到一种方法来做到这一点。
任何帮助都会很好。
我尝试了for
循环:
x = list("ABCDEFGHIJ...")
for i in range(0,55):
for j in range(0,55):
y = (j+55) - (i+55)
list[i][j] = x[y]
所以是的,谢谢你的帮助。
答案 0 :(得分:5)
您可能正在寻找deque
>>> from collections import deque
>>> d = deque('ABC')
>>> d
deque(['A', 'B', 'C'])
>>> d.rotate(-1)
>>> d
deque(['B', 'C', 'A'])
答案 1 :(得分:0)
如果您只是想附加一个旋转列表,请按以下步骤操作:
>>> x=[]
>>> x.append(list('ABC'))
>>> x
[['A', 'B', 'C']]
>>> x.append(x[-1][1:]+x[-1][:1])
>>> x
[['A', 'B', 'C'], ['B', 'C', 'A']]
您可以继续:
>>> x.append(x[-1][1:]+x[-1][:1])
>>> x
[['A', 'B', 'C'], ['B', 'C', 'A'], ['C', 'A', 'B']]
当你说'继续直到完成'时你可能会有这样的意思吗?:
x=[list('ABCD')]
def rotate(l,n):
return l[n:] + l[:n]
while True:
rl=rotate(x[-1], 1)
if len(x)>1 and x[0]==rl:
break
else:
x.append(rl)
print x
# [['A', 'B', 'C', 'D'], ['B', 'C', 'D', 'A'], ['C', 'D', 'A', 'B'], ['D', 'A', 'B', 'C']]