gpt4 book ai didi

python - 获取大致相等大小的 block 的索引

转载 作者:行者123 更新时间:2023-11-30 23:04:02 26 4
gpt4 key购买 nike

这个问题与 Python: Slicing a list into n nearly-equal-length partitions 非常相似.

但是,我不想真正对列表进行切片。我想要的只是每个 block 的开始和停止索引值,就像我对列表进行切片一样。

所以我想要的是一个接受输入的函数:

def partitionIndexes( totalsize, numberofpartitions):

并返回表示每个分区的开始和结束索引的元组列表。每个元组应涵盖大致相同数量的索引(1 以内)。

示例:

>>>partitionIndexes( 105, 10 )
[(0, 10)
(11, 21)
(22, 32)
(33, 43)
(44, 54)
(55, 64)
(65, 74)
(75, 84)
(85, 94)
(95, 104)]

请注意前 5 个分区如何跨越 11 个索引,后 5 个分区如何跨越 10 个索引。

如果可能,我希望避免生成所有索引的中间列表。

最佳答案

您可以使用简单的生成器函数来完成此操作。

def partitionIndexes(totalsize, numberofpartitions):
# Compute the chunk size (integer division; i.e. assuming Python 2.7)
chunksize = totalsize / numberofpartitions
# How many chunks need an extra 1 added to the size?
remainder = totalsize - chunksize * numberofpartitions
a = 0
for i in xrange(numberofpartitions):
b = a + chunksize + (i < remainder)
# Yield the inclusive-inclusive range
yield (a, b - 1)
a = b

关于python - 获取大致相等大小的 block 的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33878939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com