【问题标题】:How to split list elements to a line separated by space如何将列表元素拆分为以空格分隔的行
【发布时间】:2018-04-06 08:40:37
【问题描述】:

我在 python 中有一个列表:

values = ['Maths\n', 'English\n', 'Hindi\n', 'Science\n', 'Physical_Edu\n', 'Accounts\n', '\n']
print("".join(values))

我希望输出应该是:-

Subjects: Maths English Hindi Science Physical_Edu Accounts

我是 Python 新手,我使用了 join() 方法,但无法获得预期的输出。

【问题讨论】:

  • 感谢您的提问,但请更新它以显示您到目前为止编写的代码。
  • 我使用下面的代码打印列表元素 print("".join(values)) 输出是:- 数学英语印地语科学物理_教育帐户加上两行空间但我希望我们的输入在一行中只分开按空间。
  • 你的代码和实际输出是什么?由于您的列表中有“\n”,因此如果您不修剪或替换“\n”,则输出中应该有多行。
  • 好的,我会用这些新信息自己更新问题。

标签: python regex scripting


【解决方案1】:

您可以将str.strip函数映射到列表中的每个元素,然后加入它们。

values = ['Maths\n', 'English\n', 'Hindi\n', 'Science\n', 'Physical_Edu\n', 'Accounts\n', '\n']

print("Subjects:", " ".join(map(str.strip, values)))

【讨论】:

  • 您需要在项目之间添加空格,您的代码将在没有它的情况下打印它们
  • 你甚至可以使用.rstrip(),因为换行符只出现在字符串的右侧(虽然是+1)。
  • @Jan 对!更明确地说,您甚至可以使用.rstrip("\n")。但我猜str.strip 在这种情况下完全没问题。
【解决方案2】:

您可以使用this example 去除换行符并使用以下方法加入它们:

joined_string = " ".join(stripped_array)

【讨论】:

    【解决方案3】:

    strip() 字符串的每个元素,然后是join(),它们之间有一个space

    a = ['Maths\n', 'English\n', 'Hindi\n', 'Science\n', 'Physical_Edu\n', 'Accounts\n', '\n']
    print("Subjects: " +" ".join(map(lambda x:x.strip(), a)))
    

    输出:

    Subjects: Maths English Hindi Science Physical_Edu Accounts 
    

    正如@miindlek 所指出的,您也可以通过使用 map(str.strip, a) 代替 map(lambda x:x.strip(), a))

    来实现相同的目的

    【讨论】:

    • 没有投反对票。但是为什么要使用 lambda 函数来调用另一个函数
    • @miindlek 谢谢你的指导。
    【解决方案4】:

    使用正则表达式方法:

    import re
    
    lst = ['Maths\n', 'English\n', 'Hindi\n', 'Science\n', 'Physical_Edu\n', 'Accounts\n', '\n']
    
    rx = re.compile(r'.*')
    print("Subjects: {}".format(" ".join(match.group(0) for item in lst for match in [rx.match(item)])))
    # Subjects: Maths English Hindi Science Physical_Edu Accounts 
    

    但最好使用strip()(甚至更好:rstrip()),如其他答案中提供的那样:

    string = "Subjects: {}".format(" ".join(map(str.rstrip, lst)))
    print(string)
    

    【讨论】:

      猜你喜欢
      • 2017-07-30
      • 2020-01-05
      • 2022-12-26
      • 1970-01-01
      • 2017-08-11
      • 2020-10-24
      • 2020-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多