我遇到了以下使用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 - 在Python中使用单引号的While循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20152447/

10-13 09:25