【问题标题】:How to remove "\n" of a string in python3? [duplicate]如何在python3中删除字符串的“\ n”? [复制]
【发布时间】:2018-03-21 01:36:55
【问题描述】:
if __name__ == '__main__':
    string =[' \n            Boeing Vancouver\n          ', '\n          Airbus\n        ', '\n          Lockheed Martin\n        ', '\n          Rolls-Royce\n        ', '\n          Northrop Grumman\n        ', '\n          BOMBARDIER\n        ', '\n          Raytheon\n        ']
    for item in string:
        item.replace("\n"," ")
        item.strip()
    print(string)

输出和输入一样,为什么?

【问题讨论】:

  • 字符串是不可变的。
  • string = [s.strip() for s in string]
  • [a.replace('\n',' ').strip() for a in string] 会给你一个新的修改列表。

标签: python


【解决方案1】:

字符串在 python 中是不可变的。您可以使用列表推导简单地去除前导或尾随空格来创建新列表。

[x.strip() for x in string]

【讨论】:

  • 在移动端请注意错误。
【解决方案2】:

您需要再次查看the documentation

返回字符串的副本,其中所有出现的子字符串 old 都替换为 new。如果给出了可选参数 count,则仅替换第一个 count 出现。

换句话说,item.replace("\n"," ") 本身什么都不做。

【讨论】:

    【解决方案3】:

    您可以使用list comprehension 之类的:

    代码:

    [s.replace("\n", " ") for s in a_string]
    

    测试代码:

    a_string = [' \n            Boeing Vancouver\n          ',
              '\n          Airbus\n        ',
              '\n          Lockheed Martin\n        ',
              '\n          Rolls-Royce\n        ',
              '\n          Northrop Grumman\n        ',
              '\n          BOMBARDIER\n        ',
              '\n          Raytheon\n        ']
    
    
    print([s.replace("\n", " ") for s in a_string])
    

    结果:

    ['              Boeing Vancouver           ', 
     '           Airbus         ', 
     '           Lockheed Martin         ', 
     '           Rolls-Royce         ', 
     '           Northrop Grumman         ', 
     '           BOMBARDIER         ', 
     '           Raytheon         ']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      相关资源
      最近更新 更多