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