Python将元素插入列表无限循环的奇怪行为



我试图将元素插入以下列表(C5)并获得新列表(C6)时,当列表的连续元素不一样,并且我在下面尝试过。这种插入以某种方式使我进入了无限的循环,我必须手动杀死该程序才能停止该程序。有人可以帮助我理解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)

c5c6引用相同的列表对象,原因是:

c6=c5

通过 c5迭代与添加到 c6的结合,引用相同列表意味着在添加元素时通过列表进行迭代。

通过使用:

使c6副本
c6 = c5[:]

其他选项。

最新更新