Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建偏移量列表_Python_List_Python 3.x - Fatal编程技术网

Python 创建偏移量列表

Python 创建偏移量列表,python,list,python-3.x,Python,List,Python 3.x,我希望python生成一个列表[[['a',B',C']],然后附加另一个列表,使其成为[['a',B',C'],['B',C',a'],并继续,直到完成为止。我使用python已经有一段时间了,但似乎找不到一种方法来实现这一点。 任何帮助都很好 我尝试了的循环: x = list("ABCDEFGHIJ...") for i in range(0,55): for j in range(0,55): y = (j+55) - (i+55) list[i]

我希望python生成一个列表
[[['a',B',C']]
,然后附加另一个列表,使其成为
[['a',B',C'],['B',C',a']
,并继续,直到完成为止。我使用python已经有一段时间了,但似乎找不到一种方法来实现这一点。 任何帮助都很好

我尝试了
循环:

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]

是的,谢谢你的帮助。

你可能在
deque

>>> from collections import deque
>>> d = deque('ABC')
>>> d
deque(['A', 'B', 'C'])
>>> d.rotate(-1)
>>> d
deque(['B', 'C', 'A'])

如果您只是尝试附加一个旋转列表,以下是如何添加:

>>> 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']]

我不知道你想完成什么。您是否正在尝试获取
列表('abc')
的所有排列?如果是这样的话,
itertools.permutations
就是你的朋友。我想他是把原始列表当作戒指看待。@2rs2ts啊哈!你可能是对的:)如果是的话,g.d.d.c.的答案是完美的。你应该总是说出你到底有什么问题。实际上,您的代码无法运行,因为您正在为“list”的索引分配一个值,这是一种类型。另一个提示:您必须首先构建空网格,因为您不能分配超出范围的索引。你的第四行可以简化…背上这个答案:为了得到想要的结果(“ABC”的旋转列表),你可以这样做:
x=“ABC”;L=[x];d=德克(x);对于范围内的y(透镜(x)-1):d.旋转(-1);L.追加(列表(d))