Python:在克隆列表中使用 lower() 会导致无限循环? [复制]

Posted

技术标签:

【中文标题】Python:在克隆列表中使用 lower() 会导致无限循环? [复制]【英文标题】:Python: using lower() at a cloned list results in endless loop? [duplicate] 【发布时间】:2021-07-07 17:45:55 【问题描述】:

我只想通过使用 lower() 以小写形式添加列表的每个条目。 我正在使用这段代码来完成任务:

MyList = ["EntryOne", "EntryTwo"]
TempList = MyList     #cloning MyList to TempList

for v in TempList:
    MyList.append(v.lower())     #Why is it also being appended into TempList ?
    print(MyList)
    print(TempList)




#expected output:
#["EntryOne", "EntryTwo", "entryone", "entrytwo"]
#["EntryOne", "EntryTwo"]

如您所见,TempList 的声明在 for 循环之外,我只是在开头声明它。没有将小写字母附加到 TempList 的代码。

因此这个脚本永远循环。

【问题讨论】:

请关注***.com/questions/8744113/… 无处你克隆了一个列表。 TempList = MyList 从不复制任何东西。这只是将相同的列表对象分配给另一个变量。 【参考方案1】:

你的错误是你在第 2 行的陈述:

TempList = MyList     #cloning MyList to TempList

这是不正确的。它不会克隆您的列表。

改用.copy()

TempList = MyList.copy()

【讨论】:

谢谢,这对我有帮助!

以上是关于Python:在克隆列表中使用 lower() 会导致无限循环? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Python不区别字符串大小写的列表比较法

pycharm中strip、lower、replace函数怎么连用

Python列表生成式练习

Python中的字典小写

sourcetree怎么刷新本地库列表

python-函数用法