заполнение вложенного списка элементами из 2 других вложенных списков | питон - PullRequest
0 голосов
/ 10 марта 2019

EDITED

У меня есть 2 вложенных списка, пример:

cluster_list_all_thermostat_starts = [[0, 1000, 1200, 1500, 7000], [2,300,400],[4,500,765,100,2500,3000]]

list_all_thermostat_set_points = [[20, 20, 20.5, 19.5, 19], [20,23.5,19.5],[20,20,19.5,20,25,21.5]]

Они имеют точную форму, что означает: списки в данном индексе в обоих главных списках имеют одинаковое количество элементов.

Я хочу создать вложенный «основной список», в котором все списки будут иметь одинаковое количество элементов, и элементы будут заполнены из списков list_of_start_times и list_of_temperas:

master_list =[[temperature,temperature,temperature,...,temperature], [temperature,temperature,temperature,...,temperature], [temperature,temperature,temperature,...,temperature]]

master_list должно иметь 3 списка, каждый из которых имеет одинаковое количество элементов.

Я делаю это сейчас так:

master_list_of_quartiles = []
for domek in range(len(list_of_start_times)):

master_list = [0]*24*365*4
temperatures = list_all_thermostat_set_points[domek]

house_list_start_charge = cluster_list_all_thermostat_starts[domek]
house_list_end_charge = cluster_list_all_thermostat_starts[domek] #the same list is used because the thermostat only has start times
#print(house_list_start_charge)


for kwadrans in range(len(house_list_start_charge)):
    print(kwadrans)
    start_charge = int(house_list_start_charge[kwadrans])
    print(start_charge)
    try:
        end_charge = int(house_list_end_charge[kwadrans+1]) - 1
    except IndexError:
        end_charge = 4*24*365   
    print(end_charge)
    this_temp = temperatures[kwadrans]
    print(this_temp)

    for j in range(start_charge , end_charge):
        master_list[j]=this_temp
    master_list_of_quartiles.append(master_list)

Все: print(start_charge), print(this_temp), print(end_charge) показывают хорошие значения, но заполнение master_list не работает, так как оно заполняет его последним итерированным элементом.

Цель состоит в том, чтобы преобразовать master_list_of_quartiles позже в кадр данных из 3 столбцов и 24 * 365 * 4 индексов.

Как это исправить, сохранив правильную индексацию?

1 Ответ

0 голосов
/ 11 марта 2019

Мне удалось решить проблему!

for domek in range(len(house_has_thermostat)):

master_list = []
temperatures = list_all_thermostat_set_points[domek]

house_list_start_charge = cluster_list_all_thermostat_starts[domek]
house_list_end_charge = cluster_list_all_thermostat_starts[domek] #the same list is used because the thermostat only has start times


for kwadrans in range(len(house_list_start_charge)):
    print(kwadrans)
    start_charge = int(house_list_start_charge[kwadrans])
    print(start_charge)
    try:
        end_charge = int(house_list_end_charge[kwadrans+1]) - 1
    except IndexError:
        end_charge = 4*24*365   
    print(end_charge)
    this_temp = temperatures[kwadrans]
    print(this_temp)


    for j in range(start_charge , end_charge):
        master_list.extend([this_temp])
while len(master_list)<4*24*365:
    master_list.extend([this_temp])
master_list_of_quartiles.append(master_list)
...