Python 将元素插入到列表中无限循环的奇怪行为
Python inserting element into list strange behaviour of infinite loop
我正在尝试将一个元素插入到下面的列表 (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)
由于以下原因,c5
和 c6
引用相同的列表对象:
c6=c5
遍历 c5
并添加到引用相同列表的 c6
意味着在向列表中添加元素时遍历列表。
使用以下方法制作 c6
副本:
c6 = c5[:]
还有其他选项。
我正在尝试将一个元素插入到下面的列表 (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)
c5
和 c6
引用相同的列表对象:
c6=c5
遍历 c5
并添加到引用相同列表的 c6
意味着在向列表中添加元素时遍历列表。
使用以下方法制作 c6
副本:
c6 = c5[:]
还有其他选项。