【问题标题】:python replace \r\n in elements of arraypython替换数组元素中的\r\n
【发布时间】:2012-01-16 07:45:11
【问题描述】:

我有一个清单。一个元素是包含\r\n 的大字符串。我想删除它,以便当我将元素写入新文件时,当新列表写入其中时,新行将开始。

不知何故replace("\r\n",""),不起作用。

例如:

['1','Smth\r\nmoretext']

这必须在一个新文件中:

1,smthmoretext

谢谢

【问题讨论】:

  • 准确显示您尝试使用replace("\r\n", "") 的方式以及发生的情况与您预期发生的情况。

标签: python arrays replace element


【解决方案1】:

以下 sn-p 将产生您似乎需要的结果:

xs = ['1', 'Smth\r\nmoretext']
result = ','.join(map(lambda x: x.replace('\r\n',''), xs)).lower()

map 内置函数用于对 xs 数组的每个元素应用匿名 lambda 函数,其中删除了 \r\n 子字符串。

','.join(...) 命令然后获取结果数组的每个元素,并在元素之间用逗号将它们粘合在一起。

最后,我们在最终结果字符串上调用 '.lower()' 以生成您想要的全小写字符串 '1,smthmoretext' 字符串。

另一种可能是:

result = ','.join([ x.replace('\r\n','') for x in xs ]).lower()

或者,分几行:

result = [ x.replace('\r\n','') for x in xs ]
result = ','.join(result)
result = result.lower()

选择对您最有意义的内容,但更重要的是,选择对维护您的代码的人(可能是 6 个月后的您自己)来说更容易阅读的内容。

【讨论】:

    【解决方案2】:

    问题在于您正在互换处理字符串和数组。 不要那样做。

    这将为您处理替换

    >>> old = ['1','Smth\r\nmoretext']
    >>> new = [i.replace("\r\n","") for i in old]
    >>> print new
    ['1', 'Smthmoretext']
    

    不知道你想怎么写

    >>> open('file-a.txt',w).write('\n'.join(new))
    >>> open('file-b.txt',w).write(','.join(new))
    

    虽然你也可以这样做:

    >>> new = ','.join(old)
    >>> new.replace("\r\n", "")
    >>> print new
    >>> 1,Smthmoretext
    

    【讨论】:

      【解决方案3】:

      您可以使用list comprehensions 对列表中的每个元素进行操作,并将结果放入新列表中。

      items = ['abc', 'abc\r\ndef', 'foo\r\n bar\r\n']
      newItems = [s.replace('\r\n', '') for s in items]
      print newItems
      # ['abc', 'abcdef', 'foo bar']
      

      【讨论】:

        【解决方案4】:

        替换有什么问题?如何调用替换函数?

        我似乎在工作:

        >>> 'Smth\r\nmoretext'.replace("\r\n", "")
        'Smthmoretext'
        

        替换列表中的所有元素:

        lst = ['1','Smth\r\nmoretext']
        lst = [txt.replace("\r\n", "") for txt in lst]
        

        【讨论】:

          猜你喜欢
          • 2014-11-20
          • 1970-01-01
          • 2018-08-02
          • 1970-01-01
          • 2021-08-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-23
          相关资源
          最近更新 更多