我试图将一个列表切成一个列表的列表,从而在检测到字符串类型对象的地方对原始列表进行切分,如
array = ['Hello',1,2,3,'Goodbye',4,6,'Bye',7,8,9,5]
到
new_array = [['Hello',1,2,3],['Goodbye',4,6],['Bye',7,8,9,5]]
如何实现这一点?
你可以使用一个生成函数来处理这个问题,例如:
def gen(arr):
r = []
for el in arr:
if r and isinstance(el, str):
yield r
r = []
r.append(el)
if r:
yield r
>>> list(gen(array))
[['Hello', 1, 2, 3], ['Goodbye', 4, 6], ['Bye', 7, 8, 9, 5]]