簡體   English   中英

如何將列表元素拆分為以空格分隔的行

[英]How to split list elements to a line separated by space

我在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()方法,但無法獲得預期的輸出。

您可以將str.strip函數映射到列表中的每個元素,然后將它們加入。

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

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

使用正則表達式方法:

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)

您可以做的是使用此示例剝離換行符,並使用以下命令將它們合並:

joined_string = " ".join(stripped_array)

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)) ,您也可以實現相同的操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM