删除列表中的空元素
本以为挺简单的,一顿操作之后,再加上网上的资料,还有点小复杂。
以案例来说,更清晰些,做个学习笔记。
list_eg = ['',' ','hello','\n','world','\t']
print(list_eg)
输出如下
['', ' ', 'hello', '\n', 'world', '\t']
在网上找到一个列表推导式
list_eg_change = [x.strip() for x in list_eg if x.strip()!='']
print(list_eg_change)
输出如下
['hello', 'world']
看着有点傻眼,把这个列表推导式拆开,就看的清楚了。
list_eg = ['',' ','hello','\n','world','\t']
list_eg_change = []
for i in list_eg:
if i.strip() !='':
i = i.strip()
list_eg_change.append(i)
print(list_eg_change)
步骤是:
1、遍历列表list_eg
,每个元素进行 i.strip()
删除字符左右的空格。
2、如果i.strip()
不等于空值,则将i.strip()
赋值给i
。
3、列表list_eg_change.append()
得到想要的数据。
列表推导式的语法格式如下:
[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]
此格式中,[if 条件表达式] 不是必须的,可以使用,也可以省略。