前言
昨天处理翻译数据时,打印出来的列表中有多个 “空 / 换行” 字符串,经过网上冲浪后得以解决。
该列表如下格式:
l = ['', 'You why like this\n', '', ' \r\n', 'Why are you so\n', '']
# 该列表中有空格和换行以及回车
分析
① 👉》举一个小栗子:
l1 = ' \ryou why like this\n'
# 该字符串中有 需要用到的字符、空格以及回车换行符
l2 = ' \t\r\n'
# 该字符串中除了 空格、制表符以及回车换行符 外,没有其他字符
if l1.strip(): # 如果l1.strip()的值为真,打印l1;否则不打印
print(l1)
if l2.strip(): # 如果l2.strip()的值为真,打印l2;否则不打印
print(l2)
'''
输出的结果为:
\ryou why like this\n
(空)
'''
- 因为
l1除了” 空格回车换行符之外还有其他字符“ ,所以调用strip()方法并结合if条件判断字符串中是否还有其他字符存在,若存在,条件为真,打印该值的结果。- 而
l2除了” 空格、制表符以及回车换行符外,没有其他字符“,所以调用strip()方法并结合if条件判断字符串中是否还有其他字符存在,若不存在,条件为假,不打印该值。
② 👉》完成对l列表的代码编写:
l = ['', 'You why like this\n', '', ' \r\n', 'Why are you so\n', '']
# 该列表中有空格和换行以及回车
写法一:👇
for x in l:
if x.strip():
print(x.strip())
'''
输出的结果为:
You why like this
Why are you so
'''
----------------------------------------------------------------------
写法二:👇
list = [x.strip() for x in l if x.strip()]
print(list)
'''
输出的结果为:
['You why like this', 'Why are you so']
'''
首先用
for循环遍历列表l,接着调用strip()方法并结合if条件判断字符串x中是否还有其他字符存在,若存在,条件为真,再调用strip()方法去除字符串自身的空白字符(结合上面的栗子)用 列表推导式 (简写),替代上面得代码:
list = [x.strip() for x in l if x.strip()]
本文介绍了一种有效的方法来清理Python列表中的空字符串、换行符和制表符,通过使用strip()方法结合if条件判断,确保列表只保留有意义的数据。
586

被折叠的 条评论
为什么被折叠?



