Python 如何将列表拆分为较小的列表?

Python 如何将列表拆分为较小的列表?,python,list,for-loop,append,Python,List,For Loop,Append,我有一份清单: 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: li

我有一份清单:

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还是很陌生,而且我一事无成。请不要花哨,我该如何解决我的问题?

可能是地图列表、.joinlist.split之类的东西

或者,[lists for s in.joinlists.split的'

可能类似于maplist、.joinlists.split's'

或者,[lists for s in.joinlists.split的'

尝试:

尝试:


好吧,也许很有趣,但这应该行得通:

[s.split('#') for s in '#'.join(lists).split('#S#')]

若任何字符不太可能出现在列表中,则可以使用它来代替。嗯,这可能很有趣,但这应该可以:

[s.split('#') for s in '#'.join(lists).split('#S#')]

若字符不太可能出现在列表中,那个么可以使用任何字符来代替它。

嗨,谢谢你们的帮助!这个答案很有效,但,有并没有办法解决我的问题?我不认为我离那个么远,我宁愿坚持我现在所理解的,因为我是一个新手!groupby是这里的关键点。你们可能需要阅读pythonc、 @user1828072“修复你已经拥有的东西”的问题是你的方法是……嗯,不是特别像python。这并不是说你的方法的最终结果是不正确的,只是更不可取,可能效率更低。嗨,谢谢你的帮助!这个答案是有效的,但是,还有修复我拥有的东西的方法吗?我不认为我是一个I’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’不太可取,也可能效率较低。