我有一个列表:
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']]
