代码之家  ›  专栏  ›  技术社区  ›  conv3d

在多字符串python的每个空格中插入\n

  •  1
  • conv3d  · 技术社区  · 6 年前

    我有一个字符串列表:

    ['Hello Yes', 'Good Now Order', 'Been There Before', 'Because']
    

    我想把它改写为:

    ['Hello\nYes', 'Good\nNow\nOrder', 'Been\nThere\nBefore', 'Because']
    

    所以 \n 进入除字符串开头或结尾以外的所有空间。

    我试过了 .split(' ') 在for循环中,但是这会变得混乱,然后不确定如何在最后重新加入。

    3 回复  |  直到 6 年前
        1
  •  5
  •   user2390182    6 年前

    您可以尝试使用您建议的拆分和联接方法进行以下理解:

    l = ['Hello Yes', 'Good Now Order', 'Been There Before', 'Because']
    l_new = ['\n'.join(s.split()) for s in l]  
    # this would replace any sequence of whitespace by a single line break
    

    或者更易读,更切题,使用 str.replace :

    l_new = [s.replace(' ', '\n') for s in l]
    # this will replace all and only space characters
    
        2
  •  3
  •   CoffeeTableEspresso    6 年前

    尝试列表理解(这将返回一个新列表,其中每个元素与旧列表中的元素相同,但空格被换行符替换):

    [element.replace(' ', '\n') for element in ls]
    

    哪里 ls 是你的清单。

    或者,您可以使用 replace 方法。

        3
  •  0
  •   Sunitha    6 年前
    l = ['Hello Yes', 'Good Now Order', 'Been There Before', 'Because']
    list(map('\n'.join, map(str.split, l)))
    # ['Hello\nYes', 'Good\nNow\nOrder', 'Been\nThere\nBefore', 'Because']