Кажется, что вы ищете что-то вроде:
import random
big_list = [[2]]
for _ in range(1,5): # increase to create more "rooms"
big_list.append( [random.randint(0,3) for _ in range(sum(big_list[-1]))])
total = 0
for inner in big_list:
print(inner, "before:", total)
total += sum(inner)
Для создания списков вроде:
[2] before: 0
[3, 1] before: 2
[2, 3, 1, 1] before: 6
[1, 1, 2, 0, 2, 2, 2] before: 13
[2, 3, 0, 2, 3, 2, 2, 1, 0, 2] before: 23
Из-за случайности вы также можете получить:
[2] before: 0
[0, 1] before: 2
[0] before: 3
[] before: 3
[] before: 3
Частичную сумму внутри списка можно получить с помощью выражения генератора внутри суммы или среза списка и суммы:
lol = [[1,2,3], [4,5,6,7,8,9,10,11,12], [13,14,15,16,17]]
idx_in_lol = 1 # [4,5,6,7,8,9,10,11,12]
idx_in_inner = 5 # [4,5,6,7,8,***9***,10,11,12]
# generator expression and enumerate
s1 = sum( i if idx < idx_in_inner else 0 for idx,i in enumerate(lol[idx_in_lol]))
# or by slicing
s2 = sum( lol[idx_in_lol][:idx_in_inner] )
print(s1, s2)
Вывод:
30 30 # 4+5+6+7+8 = 30