如何使用 Python 将一个字符串列表按另一个字符串列表分组?

How can I group a list of strings by another list of strings using Python?

我有两个列表:

列表 1

filenames = ['K853.Z', 'K853.N', 'K853.E', 'K400.Z', 'K400.N', 'K400.E']

列表 2

l = ['K853', 'K400']

我想遍历 filenames 列表并按 l 列表对字符串进行分组。

我试过以下方法:

for name in filenames:
    for i in l:
        if i in name:
            print(name)

但这只会打印第一个列表。我看过 Pandas groupby 方法,但我不知道在这种情况下如何使用它。

您可以像这样使用列表生成器:

new = [[name for name in filenames if(name.startswith(prefix))] for prefix in l]

这将为您提供一个列表列表,其中对于 l 的每个索引,您将获得一个文件列表,其前缀位于新列表中的相同索引处。