如何将列表元素拆分成以空格分隔的一行
问题的出现原因是需要将列表中的元素按照空格分隔开来,并以每行一个元素的形式输出。
解决方法之一是使用正则表达式的方法,代码如下:
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
这种方法使用了正则表达式的匹配功能,通过遍历列表中的每个元素,使用`rx.match(item)`进行匹配,将匹配的结果以空格分隔,并以每行一个元素的形式输出。
另一种更好的解决方法是使用`strip()`函数(或更好的是`rstrip()`函数),代码如下:
string = "Subjects: {}".format(" ".join(map(str.rstrip, lst))) print(string)
这种方法使用了`rstrip()`函数,对列表中的每个元素进行去除末尾空格的操作,然后使用空格将元素连接成字符串,并以每行一个元素的形式输出。
这两种方法都可以实现将列表中的元素按照空格分隔开来,并以每行一个元素的形式输出。具体使用哪种方法取决于个人的需求和偏好。
问题:如何将列表元素拆分为由空格分隔的行?
原因:代码中的列表元素带有换行符,导致输出结果没有空格分隔。
解决方法:使用str.strip
函数对列表中的每个元素进行映射操作,然后将它们连接起来。
代码如下:
values = ['Maths\n', 'English\n', 'Hindi\n', 'Science\n', 'Physical_Edu\n', 'Accounts\n', '\n'] print("Subjects:", " ".join(map(str.strip, values)))
解释:上述代码将str.strip
函数应用于列表中的每个元素,去除换行符,并使用空格将它们连接起来。最终输出结果为Subjects: Maths English Hindi Science Physical_Edu Accounts
,每个科目名称之间用空格分隔。这样就解决了原始列表元素没有空格分隔的问题。