Python分割列表 [英] Python split for lists

查看:143
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆