リストを均等なサイズではない小さな間隔に分割し、各間隔の理想的な初期値と最終値を得るにはどうすればよいですか?
16383 個のアイテムのリストがあります。また、各間隔が終了し、次の値が入力される値の別のリストもあります。
指定された間隔を使用して、値に応じて、各要素をそれが属するパーティションに割り当てる必要があります。
私はものを読んでみましたが、元のリストが与えられた場合にのみ遭遇し、人々はそれを均等なサイズのパーティションに分割しました...
ありがとう
ブレーズ
私があなたを理解するなら、あなたはそのようなものが必要です
>>> a = range(20)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> i = [[1, 5], [5, 8], [8, 20]]
>>> [a[x:y] for x, y in i]
[[1, 2, 3, 4], [5, 6, 7], [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]]
または、Jon Clementsがコメントで提案したように:
>>> [a[slice(*s)] for s in i]
[[1, 2, 3, 4], [5, 6, 7], [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]]
スライスは引き続き使用できます。
>>> c = [0,3,5,10]
>>> l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [l[c[i]:c[i+1]] for i in range(len(c)-1)]
[[0, 1, 2], [3, 4], [5, 6, 7, 8, 9]]