我有一个包含各种字符串值的列表。我想一看就拆分列表WORD。结果将是一个列表列表(这将是原始列表的子列表),其中仅包含WORDI的一个实例,我可以使用循环执行此操作,但是有没有 更Python的 方法可以实现此目的?
WORD
例子= ['A', 'WORD', 'B' , 'C' , 'WORD' , 'D']
['A', 'WORD', 'B' , 'C' , 'WORD' , 'D']
结果= [['A'], ['WORD','B','C'],['WORD','D']]
[['A'], ['WORD','B','C'],['WORD','D']]
这是我尝试过的方法,但实际上并没有达到我想要的效果,因为它将放入WORD应包含的其他列表中:
def split_excel_cells(delimiter, cell_data): result = [] temp = [] for cell in cell_data: if cell == delimiter: temp.append(cell) result.append(temp) temp = [] else: temp.append(cell) return result
我会使用发电机:
def group(seq, sep): g = [] for el in seq: if el == sep: yield g g = [] g.append(el) yield g ex = ['A', 'WORD', 'B' , 'C' , 'WORD' , 'D'] result = list(group(ex, 'WORD')) print(result)
此打印
[['A'], ['WORD', 'B', 'C'], ['WORD', 'D']]
该代码接受任何可迭代的代码,并生成一个可迭代的代码(如果您不需要, 可以 将其平化为列表)。