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

时间:2017-03-15 18:26:04

标签: python list python-3.x insertion

我试图在下面的列表中插入一个元素(c5)并在列表的连续元素不相同时获取新列表(c6)并且我在下面的脚本中尝试过。这个插入以某种方式带我进入无限循环,我必须手动终止程序以停止程序。任何人都可以帮我理解python中List的奇怪行为吗?

提前致谢

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)

1 个答案:

答案 0 :(得分:1)

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

c6=c5

通过c5进行迭代并添加到引用相同列表的c6意味着在向其添加元素时迭代列表。

使用以下内容制作c6副本:

c6 = c5[:]

等其他选项。