python插入元素到列表奇怪的行为的无限循环
问题描述:
我试图插入一个元素到下面的列表(c5)并获得新的列表(c6)当列表中的连续元素不相同,我已经尝试下面的脚本。这种插入以某种方式带我到无限循环,我不得不手动杀死程序来停止程序。任何人都可以帮助我理解Python中这种奇怪的行为?python插入元素到列表奇怪的行为的无限循环
预先感谢
c5=['03-03-2017 00:00', '03-03-2017 00:00', '03-03-2017 00:00', '03-03-2017 00:00', '03-03-2017 00:00', '04-03-2017 00:00', '04-03-2017 00:00', '06-03-2017 00:00', '06-03-2017 00:00', '06-03-2017 00:00', '06-03-2017 00:00', '06-03-2017 00:00', '06-03-2017 00:00', '06-03-2017 00:00', '06-03-2017 00:00', '06-03-2017 00:00', '07-03-2017 00:00', '07-03-2017 00:00', '07-03-2017 00:00', '07-03-2017 00:00', '07-03-2017 00:00', '07-03-2017 00:00', '07-03-2017 00:00', '08-03-2017 00:00', '08-03-2017 00:00', '08-03-2017 00:00', '09-03-2017 00:00', '09-03-2017 00:00', '09-03-2017 00:00', '09-03-2017 00:00', '09-03-2017 00:00', '09-03-2017 00:00', '10-03-2017 00:00']
c6=c5
x=0
for d in c5:
if(x<(len(c5)-1)):
if(d != c5[x+1]):
c6.insert(x+1,'Hurray')
print(x)
x+=1
print(c6)
答
c5
和c6
参照同一列表对象由于:
c6=c5
迭代通过组合c5
与添加到c6
引用相同的列表是指通过一个迭代列表,而你正在向它添加元素。
让c6
副本使用:
c6 = c5[:]
其他选项。
+0
这很有效,谢谢你的澄清。 –
'c6 = c5'不能复制。请参阅https://nedbatchelder.com/text/names.html – user2357112
[如何克隆或复制列表?]的可能重复(http://*.com/questions/2612802/how-to-clone-or-copy -a-list) – TemporalWolf