如何用空格分隔符切割字符串列表?

时间:2016-11-10 19:07:32

标签: python string list delimiter

我有一个列表(original_List),它由多个字符串组成,每个元素都有空格,如下所示。如何创建原始列表中每个元素的最后一个字符串(或仅包含其他所有文件的文件名)的单独列表?

Original_List = ['-rw-rw-r-- 1 root root   134801 Nov  2 14:27 aa_base-13.txt', 
'-rw-rw-r-- 1 root root 58630 Nov  2 14:27 aaa_base-extras.txt', 
'-rw-rw-r-- 1 root root   300664 Nov  2 14:27 aaa_base-extras.txt']
Expected output for th new list should be as below:

Extracted_list

['aa_base-13.txt', 'aaa_base-extras.txt', 'aaa_base-extras.txt']

2 个答案:

答案 0 :(得分:4)

就是这样:

new_list = [x.split()[-1] for x in Original_List]

请在提问时包括您将来的尝试。

正如您所见,没有传递给split的参数,这意味着它采用默认值即空格。然后,新创建的子列表切片,只取最后一项(这是[-1]的用途)。尝试删除它以查看它产生的内容。

当然,编程中的大部分时间(如果不是总是)有很多方法可以完成任务。另一个例如是:

new_list = [y for item in [x.split() for x in Original_List] for y in item if '.' in y]

使用第二个,您正在寻找包含点'.'的子串。您也可以将其替换为'.txt'。这是查找特定扩展名的文件名或文件名的更可靠方法,因为它们必须包含至少一个点。

这两种方法的共同之处在于它们是列表推导。这是python中的一个核心概念,如果你认真对待,我会建议你看看它。

希望这有帮助!

答案 1 :(得分:2)

您可以尝试列表理解:

[x.split()[-1] for x in Original_List]

希望这有帮助!