给定一个集合或列表(假设它是有序的)
myset = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
我想知道一个范围内有多少个数字。 假设我的射程是10。根据上面的列表,我有两组10。在
我希望函数返回[10,10]
如果我的射程是15。那么我应该得到[15,5]
范围会改变。这是我想到的
^{pr2}$输出
1 in 1
2 in 1
3 in 1
4 in 1
5 in 1
6 in 1
7 in 1
8 in 1
9 in 1
10 in 1
12 in 2
13 in 2
14 in 2
15 in 2
16 in 2
17 in 2
18 in 2
19 in 2
[10, 8]
注意11和20跳过了。我还研究了这种情况,得到了有线结果。在
编辑:范围定义了一个范围,该范围内的每个值都应计入一个卡盘。在
把一个范围想象成从当前值到当前值+范围作为一个块。在
编辑:
想要的输出:
1 in 1
2 in 1
3 in 1
4 in 1
5 in 1
6 in 1
7 in 1
8 in 1
9 in 1
10 in 1
11 in 2
12 in 2
13 in 2
14 in 2
15 in 2
16 in 2
17 in 2
18 in 2
19 in 2
[10, 10]
如果您不关心给定块中的数字,则可以轻松计算大小:
使用right key函数,
itertools
模块中的groupby
方法使这项工作相当简单:要使用简单除法和余数;^{} function 可以同时使用:
要创建所需的输出,请使用
^{pr2}$chunks()
的输出:count
是当前块的编号(从1开始;python通常使用基于0的索引)。在打印:
相关问题 更多 >
编程相关推荐