Skip to main content
 首页 » 编程设计

python之如何将列表拆分为更小的列表

2025年05月04日14lyhabc

我有一个列表:

lists = (['1','2','3','S','3','4','S','4','6','7']) 

每次出现“S”时,我都想将列表拆分为更小的列表,并将“S”消除为如下内容:

([['1','2','3'],['3','4],['4','6','7']]) 

我的代码:

def x (lists): 
    empty = '' 
    list = [] 
 
    for x in lists: 
        if x == empty: 
            list[-1:].append(x) 
        else: 
            list.append([x]) 
 
    return (list) 

我试过这样的东西,但我对 python 很陌生,而且我一无所获。没什么特别的,我该如何解决我的问题?

请您参考如下方法:

尝试 itertools.groupby() :

>>> from itertools import groupby 
>>> lists = ['1','2','3','S','3','4','S','4','6','7'] 
>>> [list(g[1]) for g in groupby(lists, lambda i:i!='S') if g[0]] 
[['1', '2', '3'], ['3', '4'], ['4', '6', '7']]