女士们先生们,大家好
我有一段代码可以在列表中找到连续的数字:
from itertools import groupby
from operator import itemgetter
a = [1,2,3,5,55,56]
def consc(b):
for k, g in groupby(enumerate(b), lambda (i,x):i-x):
print map(itemgetter(1), g)
consc(a)
输出:
^{pr2}$但是,我也希望能够寻找其他三角洲(1到10),例如,如果差值为2,则同一列表中的输出结果如下:
[1]
[2]
[3,5]
[55]
[56]
谢谢!在
实际上是一个非常简单的修改:
它给出了:
^{pr2}$我们没有使用},这会得到想要的结果。在
enumerate()
,而是使用了zip()
和{清理一下:
这里有一个生成器,并使用更具描述性的名称。使用实际函数可以避免每次使用函数时都重新声明它,就像
lambda
。这在Python3.x中也可以通过避免使用参数解包(已从语言中删除)来实现。在相关问题 更多 >
编程相关推荐