【发布时间】:2014-11-07 08:55:12
【问题描述】:
基本上,想要遍历数字数据列表以更改其内容,其中列表开头的数字移动到最后,然后数据向左移动。虽然我已经实现了这一点,因为循环的打印内容给出了预期的结果,当试图将所述循环的内容附加到所述字典时,它只在最终迭代中这样做。这是我的代码:
minor=[1,2,3,4,5,6]
MNP = {'scale degree' : []
}
def patterns(scale):
for i in scale:
print (scale)
scale.insert(len(scale),scale[0])
del(scale[0])
MNP['scale degree'].append(scale)
使用函数模式,这是输出:
>>> patterns(minor)
顺便说一下,该列表位于页面顶部。
输出:
[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]
然而,当我尝试在 MNP 字典中打印列表的内容时,缩放度,结果是:
MNP['尺度度'] [[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]]
我对这个结果感到非常困惑,好像输出会根据调用的操作而变化?
提前感谢您的帮助。还值得注意的是,我已经被这个问题困扰了很长时间,所以如果有任何资源可以帮助我理解类似的事件,我当然不会放弃。
【问题讨论】:
-
您正在用对同一列表对象的引用填充
MNP['scale degree']。 -
Python: list of lists 的可能重复项
-
嗨,乔恩,非常感谢您的反馈,您知道这方面的吗?哦,顺便说一句,我不太确定参考是什么,至少在这种情况下,但我会立即调查。
-
如果您阅读了我链接到的副本,答案就说明了这一点。
标签: list loops for-loop python-3.x dictionary