python - While 在 Python 中用单引号循环一个条件

标签 python while-loop

我在 Python 中遇到了以下代码行,我一直想知道它到底做了什么:

while '' in myList:
    myList.remove('')

提前致谢。

最佳答案

它会低效地从列表中删除所有空字符串。

'' in myList 测试 '' 是否是 myList 的成员;它会遍历 myList 来扫描值。 myList.remove('') 扫描 myList 以找到列表中等于 '' 的第一个元素并将其从列表:

>>> myList ['', 'not empty']
>>> '' in myList
True
>>> myList.remove('')
>>> myList
['not empty']
>>> '' in myList
False

因此,代码重复扫描 myList 中的空字符串,每次找到一个空字符串时,都会执行另一次扫描以删除该空字符串。

myList = [v for v in myList if v != '']

将是完成相同任务的一种不同的、更有效的方法。这使用列表理解;遍历 myList 中的所有值并根据这些值构建一个列表对象,前提是它们不等于空字符串。

关于python - While 在 Python 中用单引号循环一个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20152447/

相关文章:

python - 错误 : The truth value of a Series is ambiguous

python - 基于大量此类短语替换大文本文件中的短语的省时方法

python - Django 使用序列化器在 Restframework 中进行 API 调用的一对多关系

Java for 循环没有在我的代码中终止

python - BigQuery 加载作业在来自 JSON 的 bool 数据类型字段上失败

python - 分析多进程 Python 脚本时出现神秘的 pickle 错误

php - while() 和 for() 有什么区别?

c++ - 带菜单的输入验证 C++

java - Java 温度计算器

c - fgets 在退出 EOF 之前循环多次