python - 如何使用 while 循环摆脱空字符串? (Python)

list1 = ["apple", "pear", "", "strawberry", "orange", "grapes", "", "watermelon"]
list2 = []
x = 0
while x < len(list1):
    if len(list1[x]) > 0:
        list2.append(list1[x])
print(list2)

我试图运行这段代码,但它似乎不起作用。如果不使用列表理解或其他方法,我应该如何修改此代码?

最佳答案

更新:刚刚注意到您不想使用不同的方法,所以这个答案仅供 future 的访问者使用。

您可以在一行中实现相同的功能:

list2 = list(filter(None, list1))

请注意,这还将删除等于 0FalseNone 的元素。更接近的实现可能是列表理解:

list2 = [i for i in list1 if i != ""]

https://stackoverflow.com/questions/69937640/

相关文章:

intellij-idea - 如何将项目从 IDEA 连接到 Gitlab

android - 找不到实现(房间)

javascript - 从数组中创建 N 位随机单词

arrays - 为什么文本行数组看起来有一个额外的容器级别?

flutter - 无法将类型为 'String' 的值分配给 flutter Getx 中类型为

list - 如何更新 Haskell 中的列表元素

javascript - 如何使用 "onclick"方法获取数据属性?

typescript - @typescript-eslint/naming-convention

r - 如何编写一个 apply() 函数来将矩阵列中的每个元素限制为最大允许值?

python - 如何根据字典键和值过滤 Pandas 数据框行?