列表的 Python 拆分

标签 python list

如果我们在python中有一个stringslist,并且想根据一些特殊的string创建子列表,我们应该怎么做?

例如:

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 == "")
<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']]

由于这种特殊情况,我们甚至可以作弊:

>>> [list(group) for k, group in groupby(l, bool) if k]
[['data', 'more data'], ['data 2', 'more data 2', 'danger'], ['date3', 'lll']]

关于列表的 Python 拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14529523/

相关文章:

python - 如何在 python eve 中存储到数据库之前处理数据

python - 将文本文件中的一组值与另一组值进行匹配

java - 在 Java 中没有重复且随机顺序的集合

python - 字典键 : custom objects vs lists

python - 在主循环旁边运行 Tkinter 相关代码,无需 GUI 卡住

python - 导入单元测试错误

python - 按类别计数

java - 检测 HashMap 是否包含相同列表的更好方法

python - 根据值列表对字典列表进行排序

python - 从列表列表中检索并返回字母的函数