如何将列表元素拆分为由空格分隔的行

时间:2017-10-25 09:55:14

标签: python regex scripting

我在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()方法但无法获得预期的输出。

4 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:1)

使用正则表达式方法:

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)

答案 2 :(得分:0)

您可以使用this example删除换行符并使用以下命令加入:

joined_string = " ".join(stripped_array)

答案 3 :(得分:0)

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

来实现同样的目标