Python 3按指定的元素分割列表

时间:2022-06-01 16:36:10

Python 3有多种方法可以用来分割列表。

示例
有以下列表

li = ['a','b','c','.','aa','bb','cc','.','aaa','bbb','ccc']

现需要按“.”分割列表。

使用itertools.groupby

>>>li = ['a','b','c','.','aa','bb','cc','.','aaa','bbb','ccc']
>>>from itertools import groupby
>>>result = [list(g) for k,g in groupby(li,lambda x:x=='.') if not k]
>>>print (result)
[['a', 'b', 'c'], ['a', 'b', 'c'], ['a', 'b', 'c']]

 

使用join和split(字符串列表)

对于字符串列表可以结合join和split来分割字符串列表

>>>li = ['a','b','c','.','aa','bb','cc','.','aaa','bbb','ccc']
>>>result = [s.split() for s in ' '.join(li).split('.') if s]
>>>print (result)
[['a', 'b', 'c'], ['a', 'b', 'c'], ['a', 'b', 'c']]