python - 按字符串拆分列表和字符串的列表

标签 python list split

是否有一种方便的 pythonic 方法来按搜索字符串拆分列表(即使列表包含非字符串并具有嵌套列表)。例如,假设我想用 ',' 拆分以下内容:

[[ 'something', ',', 'eh' ], ',', ['more'], ',', 'yet more', '|', 'even more' ]

这会变成:

[[[ 'something', ',', 'eh' ]], [['more']], ['yet more', '|', 'even more']]

最佳答案

看看itertools.groupby :

In [1]: from itertools import groupby

In [2]: lst = [[ 'something', ',', 'eh' ], ',', ['more'], ',', 'yet more', '|', 'even more' ]

In [3]: [list(group) for key, group in groupby(lst, lambda x: x!=',') if key]
Out[3]: [[['something', ',', 'eh']], [['more']], ['yet more', '|', 'even more']]

它基本上根据条件 (item != ',') 将列表中的项目分成组,并且理解检查 if k 过滤掉符合条件的组False – 即等于 ',' 的项。

In [4]: for key, group in groupby(lst, lambda x: x!=','):
   ...:     print key, list(group)
   ...:     
True [['something', ',', 'eh']]
False [',']
True [['more']]
False [',']
True ['yet more', '|', 'even more']

关于python - 按字符串拆分列表和字符串的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16110307/

相关文章:

c# - 获取不在间隔内的小时列表

python - 零长度的列表理解

java - 将数组随机拆分为 2 个均分数组

python - 根据列表向字符串添加空格

python - 带距离查找的 Geodjango 查询

list - Clojure 函数抛出空指针异常

mysql - 将 Mysql Location 条目拆分为 2 列?

Python正则表达式字符串替换

python - pandas to_datetime from milliseconds 产生不正确的日期时间

Java:将字符串方程拆分为数字和运算符