感谢您查看我的问题,顺便使用Python 3,这里是代码:)
scale=[1,2,3,4,5,6]
MNP = {'scale degree' : []
}
for index, value in enumerate(scale):
scale.insert(len(scale),scale[0])
del scale[0]
MNP['scale degree'].append(scale[1])
print (MNP['scale degree'])
所以,我的目标是将名为scale的列表的修改版本附加到称为MNP的词典中。 所需的输出是一个列表('缩放度'取得列表的原始编号(如比例),并将其移动到列表的末尾,同时,所有数字将一个向左移动,如果我给出命令在函数内打印比例,就会发生这种情况:
for index, value in enumerate(scale):
scale.insert(len(scale),scale[0])
del scale[0]
MNP['scale degree'].append(scale[1])
print (MNP['scale degree'])
[1, 2, 3, 4, 5, 6]
[2, 3, 4, 5, 6, 1]
[3, 4, 5, 6, 1, 2]
[4, 5, 6, 1, 2, 3]
[5, 6, 1, 2, 3, 4]
[6, 1, 2, 3, 4, 5]
然而,当我尝试这样做时,我遇到了(是,过去时)我理解的问题。如果我执行命令,请参阅:
print(scale[1])
然后它实际 打印数字2,3,4,5,6,1。这就是我使用枚举函数的原因,我认为这可以解决问题。我想,也许索引号确定 哪个列表 会打印掉,但这当然是错误的,即使输出相同,而且&#&# 39;值得一提的是,我仍然是一个观星新手。然而,我做了一些思考,并意识到它只是打印出每个修改列表的第二个值,就像我给它一个命令只打印一个版本一样,但如果我是一个不听话的小bug要求它追加整个吹制的东西。
血腥的地狱。
所以,现在,我的问题是,我如何附加比例的修改版本,而不仅仅是单个值?
顺序添加比例确实顺便工作(这也是我的第一个解决方案),因为输出是: [[2,3,4,5,6,1]] [[3,4,5,6,1,2],[3,4,5,6,1,2]] [[4,5,6,1,2,3],[4,5,6,1,2,3],[4,5,6,1,2,3]]
它以这种方式继续前进,直到达到[1,2,3,4,5,6] * 6提前感谢您的帮助,如果可以的话,您是否可以推荐资源,以便我能够基本了解幕后播放的内容?可能还有很多东西我还是不明白(我的意思是仅仅与这个问题有关,当然,总的来说 接近理解要知道的一切(哈哈))。
再次感谢
P.S.S感谢Borodin指出在for循环中操纵数据是不好的做法。该如何正确执行?
答案 0 :(得分:0)
这是你之后的影响吗?
>>> l = [1,2,3,4]
>>> l.append(list.pop())
[2,3,4,1]
或者如果你想要展开一点:
>>> l = [1,2,3,4]
>>> e = list.pop()
>>> l.append(e)
[2,3,4,1]
在这两种情况下,我们都会从列表中删除第一个元素,并将其粘贴在列表的末尾 - 我认为这就是您所追求的内容。
或者,如果您不想修改原始列表:
>>> l = [1,2,3,4]
>>> l[1:]+[l[0]]
[2,3,4,1]
在这里,我们只是重新组合切片 - 原始列表不变。请注意,我必须将l [0]放入列表中,因为这是列表实现+的方式 - 我不能做[1:] + l [0]。
答案 1 :(得分:0)
我认为this会有所帮助。它有rotate(n)
,可以将列表元素移动n
个地方。
import collections
my_list = []
d = collections.deque([1,2,3,4,5])
for i in range(5):
d.rotate(-1)
my_list.append(d)
print my_list
输出:
[deque([1, 2, 3, 4, 5]), deque([1, 2, 3, 4, 5]), deque([1, 2, 3, 4, 5]), deque([1, 2, 3, 4, 5]), deque([1, 2, 3, 4, 5])]