我是python的新手,所以我的问题是:

我有一个这样的清单:

L = ['Name1', 'String1', 'String2', 'String3', 'Name2', 'String4', 'String5', 'String6', ...]


我想将其转换为一个新列表,其中某个“名称”之后的所有字符串都在一个子列表中,其名称类似于:

L2 = [['Name1', 'String1', 'String2', 'String3'],['Name2', 'String4', 'String5', 'String6'],[...]]


最好的方法是什么?

最佳答案

假设有一个函数isname()告诉我们列表L的元素是否是名称:

Lsub = []
L2 = []
for e in L:
    if isname(e):
        if Lsub:
            L2.append(Lsub)
        Lsub = [e]
    else:
        Lsub.append(e)
L2.append(Lsub)

09-28 08:58