Python: 如何根据变量类型对列表进行分片?

问题描述 投票:0回答:1

我试图将一个列表切成一个列表的列表,从而在检测到字符串类型对象的地方对原始列表进行切分,如

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]]

如何实现这一点?

arrays python-3.x multidimensional-array slice
1个回答
1
投票

你可以使用一个生成函数来处理这个问题,例如:

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]]
© www.soinside.com 2019 - 2024. All rights reserved.