4

次のような配列が与えられたPythonでは:

a = [ 0, 1, 3, 4, 6, 7, 8, 10, 14 ]

これを3つの不均一なグループに分割して、最終的に次のようにしたいと思います。

b = [0, 1, 3, 4]
c = [6, 7, 8]
d = [10, 14]

数値を 5 の倍数でグループ化したいと考えています。したがって、0 ~ 4 の整数は最初の配列に、5 ~ 9 は 2 番目の配列に、というように続きます。

4

3 に答える 3

3

Itertools.groupbyは常に答えです!

ここでは、各数値を最も近い 5 に切り捨ててから、等しい数値でグループ化します。

>>> for n, g in itertools.groupby(a, lambda x: round(x/5)*5):
    print list(g)

[0, 1, 3, 4]
[6, 7, 8]
[10, 14]
于 2013-06-01T03:34:11.913 に答える