2024-04-25 19:42:50 发布
网友
我在Python中遇到了以下代码行,我一直想知道它到底做了什么:
while '' in myList: myList.remove('')
提前谢谢。在
简单地说,它删除myList中的所有空字符串。在
myList
明细如下:
# While there are empty strings in `myList`... while '' in myList: # ...call `myList.remove` with an empty string as its argument. # This will remove the one that is currently the closest to the start of the list. myList.remove('')
但是请注意,使用list comprehension可以更好地(更有效地)实现这一点:
或者,如果myList纯粹是一个字符串列表:
# Empty strings evaluate to `False` in Python myList = [x for x in myList if x]
如果myList是一个字符串列表,并且您使用的是Python 2.x,那么可以使用^{},它甚至更短:
myList = filter(None, myList)
在Python中,两个单引号''或双引号""表示空字符串。在
''
""
保持循环的条件是while空字符串存在于列表中,并且仅在不再有空字符串时终止。在
while
因此,它将从列表中删除所有空字符串。在
它从列表中删除所有空字符串,效率低下。在
'' in myList测试''是否是myList的成员;它将循环myList来扫描该值。myList.remove('')扫描myList以找到列表中第一个等于''的元素,并将其从列表中删除:
'' in myList
myList.remove('')
>>> myList ['', 'not empty'] >>> '' in myList True >>> myList.remove('') >>> myList ['not empty'] >>> '' in myList False
因此,代码反复扫描myList以查找空字符串,每次找到空字符串,都会执行另一次扫描以删除该空字符串。在
是完成同样任务的另一种更有效的方法。这将使用list comprehension;循环myList中的所有值,并根据这些值构建一个新的list对象,前提是它们不等于空字符串。在
简单地说,它删除
myList
中的所有空字符串。在明细如下:
但是请注意,使用list comprehension可以更好地(更有效地)实现这一点:
^{pr2}$或者,如果
myList
纯粹是一个字符串列表:如果} ,它甚至更短:
myList
是一个字符串列表,并且您使用的是Python 2.x,那么可以使用^{在Python中,两个单引号
''
或双引号""
表示空字符串。在保持循环的条件是
while
空字符串存在于列表中,并且仅在不再有空字符串时终止。在因此,它将从列表中删除所有空字符串。在
它从列表中删除所有空字符串,效率低下。在
'' in myList
测试''
是否是myList
的成员;它将循环myList
来扫描该值。myList.remove('')
扫描myList
以找到列表中第一个等于''
的元素,并将其从列表中删除:因此,代码反复扫描
^{pr2}$myList
以查找空字符串,每次找到空字符串,都会执行另一次扫描以删除该空字符串。在是完成同样任务的另一种更有效的方法。这将使用list comprehension;循环
myList
中的所有值,并根据这些值构建一个新的list对象,前提是它们不等于空字符串。在相关问题 更多 >
编程相关推荐