我想知道如何从一系列值中获得一系列范围。我的意思是假设我有一个数字列表:list_values = [4, 3, 4, 4]
,
我想把它转换成这样的一系列范围(暂时忽略数据的结构):
0: 0 - 4
1: 4 - 8
2: 8 - 13
3: 13 - 18
其中第 i 个范围的大小对应于数字列表中的第 i 个索引。
这是我迄今为止尝试过的(以及相同基本逻辑的其他变体)。为简单起见,并且因为我坚持这一点,我现在只计算了“开始”值,即范围的开始值(0、4、8、13 ...):
range_start = [0]
for i, list_values in enumerate(list):
range_start[i+1] = range_start[i] + list_values[i] + 1
这里的逻辑本质上是递归的,即开始范围的下一个值等于前一个值,加上第 (i-1) 个 list_value,再加上 1。注意循环的第一次迭代,range_start[1] = range_start[0] + list_value[0] + 1 = 4
但是,我不断收到错误消息TypeError: 'int' object is not subscriptable
。我很困惑,因为我只做整数数学,而不是任何子集。
我希望输出是某种形式的范围,作为类似于此的列表或元组:
[[0, 4], [4, 8], [8, 13], [13, 18]]
任何帮助都很棒,谢谢!