前言
昨天处理翻译数据时,打印出来的列表中有多个
“空 / 换行”
字符串,经过网上冲浪后得以解决。
该列表如下格式:
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列表
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()]
版权声明:本文为ytraister原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。