根据特定字符串将列表拆分为子列表

2024-04-25 03:59:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python很陌生,所以我的问题是:

我有这样一个清单:

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

我想把它转换成一个新列表,其中某个“name”后面的所有字符串都在一个子列表中,其名称如下:

^{pr2}$

最好的办法是什么?在


Tags: 字符串name名称列表办法name1string1pr2
2条回答

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

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

也许不是最具Python的,但是:

import re

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

l_temp = re.split(r'(Name\d+)', ' '.join(L))

new_L = [[item] + l_temp[i+1].strip().split(' ') 
        for i, item in enumerate(l_temp) if item.startswith('Name')]

print new_L

"Flat is better than nested", but "simple is better than complex" and "readability counts",所以。。。在

相关问题 更多 >