2017-03-15 49 views
1

我试图插入一个元素到下面的列表(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) 
+0

'c6 = c5'不能复制。请参阅https://nedbatchelder.com/text/names.html – user2357112

+0

[如何克隆或复制列表?]的可能重复(http://stackoverflow.com/questions/2612802/how-to-clone-or-copy -a-list) – TemporalWolf

回答

1

c5c6参照同一列表对象由于:

c6=c5 

迭代通过组合c5与添加到c6引用相同的列表是指通过一个迭代列表,而你正在向它添加元素。

c6副本使用:

c6 = c5[:] 

其他选项。

+0

这很有效,谢谢你的澄清。 –