Python:如何根据空字符串将列表分成几个列表?

时间:2014-11-11 22:10:25

标签: python list

我在这样的列表a = ['a','b','','','c','d']上工作,真正的列表包含数千个数据条目。是否有一种奇特的方法可以将列表a设为[['a','b'],['c','d]],因为数据非常庞大?

1 个答案:

答案 0 :(得分:4)

您可以使用itertools.groupby。您基本上按连续的空字符串或连续的非空字符串进行分组。然后在列表推导中保留lambda中按True分组的所有组。

>>> from itertools import groupby

>>> [list(i[1]) for i in groupby(a, lambda i: i != '') if i[0]]
[['a', 'b'], ['c', 'd']]

另一个例子

>>> b = ['a','b','','','c','d', '', 'e', 'f', 'g', '', '', 'h']
>>> [list(i[1]) for i in groupby(b, lambda i: i != '') if i[0]]
[['a', 'b'], ['c', 'd'], ['e', 'f', 'g'], ['h']]