Python分割列表 [英] Python split for lists
本文介绍了Python分割列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我们在python中有一个 list
strings
并且想要基于一些特殊的<$ c创建子列表
$ b $ p> l = [data,more data,,data 2,more data 2,danger,,date3,lll]
p = split_special(l,)
会生成:
p = [[data,more data],[data 2,more data 2,danger],[ date3,lll]]
解决方案
itertools.groupby 是一种方法(就像往常一样):
>>> l = [data,more data,,data 2,more data 2,danger,,date3,lll]
>>> ; from itertools import groupby
>>> groupby(l,lambda x:x ==)
>>> [list(group)for k,group by groupby(l,lambda x:x ==)如果不是k]
[['data','more data'],['data 2','更多数据2','危险'],['date3','lll']]
我们甚至可以因为这种特殊情况而作弊:
>>> [数组'(数据2)','更多数据2','危险' ],['date3','lll']]
If we have a list
of strings
in python and want to create sublists based on some special string
how should we do?
For instance:
l = ["data","more data","","data 2","more data 2","danger","","date3","lll"]
p = split_special(l,"")
would generate:
p = [["data","more data"],["data 2","more data 2","danger"],["date3","lll"]]
解决方案
itertools.groupby is one approach (as it often is):
>>> l = ["data","more data","","data 2","more data 2","danger","","date3","lll"]
>>> from itertools import groupby
>>> groupby(l, lambda x: x == "")
<itertools.groupby object at 0x9ce06bc>
>>> [list(group) for k, group in groupby(l, lambda x: x == "") if not k]
[['data', 'more data'], ['data 2', 'more data 2', 'danger'], ['date3', 'lll']]
We can even cheat a little because of this particular case:
>>> [list(group) for k, group in groupby(l, bool) if k]
[['data', 'more data'], ['data 2', 'more data 2', 'danger'], ['date3', 'lll']]
这篇关于Python分割列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文