python 四种方法删除列表里所有空格项

直接放最好的方法,下面这种才最符合python的优雅和效率! 

list1 = [x for x in list1 if x != '']

思考过程:

首先,我们来随便写一个带空格的列表:

list1 = ['122','2333','3444',' ','422',' ',' ','54',' ']
  • 1

相信已经有人尝试过,诸如以下的方式去删掉空格,例如:

# -*- coding:utf-8 -*-
for i in list1:
   if i == ' ':
        list1.remove(' ')
print list1
  • 1
  • 2
  • 3
  • 4
  • 5

但是结果你会发现是这样的,它总是不能完全的删完空格,会在末尾留下一个。 
这里写图片描述

方法一: 
这个时候,可以尝试把‘==’改为in:

# -*- coding:utf-8 -*-
for i in list1:
   if ' ' in list1:
        list1.remove(' ')
print list1
  • 1
  • 2
  • 3
  • 4
  • 5

这里写图片描述

之前我在网上看过用‘’join的方式,链接找不到了,这种方法它确实能删掉带一个长度的空字符串‘ ’,但是对于间隔比较规律的还好,间隔不规律的就不太友好了,并且无论间隔规律与否,它都会生成0长度‘’空字符串的。

方法二: 
方法一是后来写这篇文章的时候测试文章最开头那个错误的写法的时候,因为记得不太清,无意中想到了in,结果发现结果是对的,我自己最先想到的方法是这样的,先获取空格的个数,然后遍历,逐个删除:

for i in range(list1.count(' ')):
    list1.remove(' ')
  • 1
  • 2

这里写图片描述

方法三: 
然后用了for我就在想可不可以用while,用while怎么写,测试了一下发现果然可以:

while ' ' in list1:
    list1.remove(' ')
print list1
  • 1
  • 2
  • 3

这里写图片描述


 

原文链接:https://blog.csdn.net/qq_28304687/article/details/77719178

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用列表推导式来删除列表中的空值,例如: ```python my_list = [1, 2, None, 3, '', 4, False, 5, [], 6] new_list = [x for x in my_list if x] print(new_list) ``` 输出结果为: ``` [1, 2, 3, 4, 5, 6] ``` 其中 `if x` 表示只保留列表中非空的元素。 ### 回答2: 在Python中,可以使用列表推导式来删除列表中的空值。具体步骤如下: 1. 定义一个包含空值的列表。 ```python my_list = [1, 2, None, "", 3, None] ``` 2. 使用列表推导式,遍历原始列表中的元素,并将非空值添加到一个新的列表中。 ```python new_list = [x for x in my_list if x is not None and x != ""] ``` 3. 最终得到的new_list即为删除了空值后的列表。 ```python print(new_list) # 输出:[1, 2, 3] ``` 注意,上述代码中,使用条件`x is not None and x != ""`来判断是否为空值,并将非空值添加到新列表中。可以根据实际情况进行修改。 另外,如果只想删除空值,可以使用列表的remove()方法,遍历原列表,找到并删除空值。 ```python my_list = [1, 2, None, "", 3, None] my_list = [x for x in my_list if x is not None] # 移除None值 my_list = [x for x in my_list if x != ""] # 移除空字符串 print(my_list) # 输出:[1, 2, 3] ``` 上述代码中,分别使用列表推导式删除了None值和空字符串值。最终得到的my_list即为删除空值后的列表。 ### 回答3: 在Python中,可以使用列表推导式来删除列表中的空值。具体操作如下: ```python # 定义一个包含空值的列表 my_list = [10, None, "hello", "", 25.5, [], True, "world", " ", 0] # 使用列表推导式删除空值 new_list = [value for value in my_list if value is not None and value != ""] print(new_list) ``` 运行输出为: ```python [10, "hello", 25.5, [], True, "world", " ", 0] ``` 在上述代码中,我们使用列表推导式对my_list进行筛选和过滤。具体逻辑如下: 1. `value for value in my_list`:遍历列表my_list中的每个值。 2. `value is not None and value != ""`:判断当前值是否为空值(空值包括None和空字符串""),如果不是空值则将其保留在新列表中。 3. 最终得到的new_list即为删除了空值的列表。 需要注意的是,在上述代码中我们保留了空列表`[]`和空格字符`" "`。如果需要进一步删除这些空值,可根据具体需求在条件判断中添加相应的条件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值