python - 将列表拆分为具有多个整数定界符的 block

标签 python list

我有两个整数列表,即numbersdelimiters。我想将 numbers 分成由 delimiters 分隔的 block 。

示例:

numbers = [10, 13, 7, 204, 129, 44, 12, 7, 17, 49, 216, 43, 16, 7, 7, 38, 29, 76, 54, 17, 39, 7, 17, 77, 7, 24, 19]
delimiters = [7,17,77]

输出:

result = [[10,13],[204, 129, 44, 12],[49, 216, 43, 16],[38, 29, 76, 54],[39],[24, 19]]

如示例中所示,如果我看到一个或多个 delimiter,我想拆分列表。

我可以通过一个简单的循环轻松做到这一点,但我相信应该有一个更好,可能更 Python 的做事方式它。我也觉得itertools是要走的路,但是,我找不到适合这个问题的好函数。

最佳答案

给你,使用 itertools.groupby :

>>> from itertools import groupby
>>> [list(g) for k, g in groupby(numbers, delimiters.__contains__) if not k]
[[10, 13], [204, 129, 44, 12], [49, 216, 43, 16], [38, 29, 76, 54], [39], [24, 19]]

关于python - 将列表拆分为具有多个整数定界符的 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32513520/

相关文章:

python - 理解列表理解

Python:迭代同时包含相似值的列表和字典的有效方法

c++ - Qt - 如何从 const 函数追加到本地列表

list - Maxima:将函数累积应用于列表的原子

python - Tensorflow conv2d_transpose(deconv)out_backprop的行数与计算的不匹配

Python GUI 移动时崩溃

python - 在 python 中将 Elasticsearch 查询转换为 Elasticsearch-dsl

python - 如何比较两个列表以保持匹配的子字符串?

c# - 反射调用列表中的类中的方法

python - 表 'MyDjango.django_admin_log' 不存在