python 去除列表中的 “空/换行” 字符串

  • Post author:
  • Post category:python




前言

昨天处理翻译数据时,打印出来的列表中有多个

“空 / 换行”

字符串,经过网上冲浪后得以解决。

该列表如下格式:

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()]



版权声明:本文为ytraister原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。