如何将列表元素拆分成以空格分隔的一行

13 浏览
0 Comments

如何将列表元素拆分成以空格分隔的一行

我在Python中有一个列表,如下所示:

values = ['数学\n', '英语\n', '印地语\n', '科学\n', '体育\n', '会计\n', '\n']
print("".join(values))

我希望输出结果如下:

科目:数学 英语 印地语 科学 体育 会计

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

0
0 Comments

问题的出现原因是需要将列表中的元素按照空格分隔开来,并以每行一个元素的形式输出。

解决方法之一是使用正则表达式的方法,代码如下:

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()`函数,对列表中的每个元素进行去除末尾空格的操作,然后使用空格将元素连接成字符串,并以每行一个元素的形式输出。

这两种方法都可以实现将列表中的元素按照空格分隔开来,并以每行一个元素的形式输出。具体使用哪种方法取决于个人的需求和偏好。

0
0 Comments

问题的原因是要将列表元素拆分为以空格分隔的行。代码中使用了strip()函数来去除每个元素的空格,并使用join()函数在它们之间添加了一个空格。解决方法是使用map()函数和lambda表达式来对列表元素应用strip()函数,并使用join()函数将它们以空格分隔。另外,也可以使用map(str.strip, a)来实现相同的效果。最后,有人问为什么要使用lambda函数来调用另一个函数,作者感谢并接受了指导。

0
0 Comments

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

原因:代码中的列表元素带有换行符,导致输出结果没有空格分隔。

解决方法:使用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,每个科目名称之间用空格分隔。这样就解决了原始列表元素没有空格分隔的问题。

0