【问题标题】:Python inserting element into list strange behaviour of infinite loopPython将元素插入列表中无限循环的奇怪行为
【发布时间】:2017-08-06 16:02:57
【问题描述】:

我正在尝试将一个元素插入到下面的列表(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)

【问题讨论】:

标签: python list python-3.x insertion


【解决方案1】:

c5c6 引用同一个列表对象,原因是:

c6=c5

遍历c5 与添加到引用相同列表的c6 相结合意味着在向列表添加元素时遍历列表。

使用以下命令制作c6 的副本:

c6 = c5[:]

在其他选项中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多