Я хочу сравнить первый элемент из подсписка (индекс [0]) с тем же элементом из подсписка прямо перед ним. если он не равен, я хочу добавить новый элемент в подсписок, который будет равен 0. если они равны, я хочу добавить результат суммы двух вторых элементов (например: 12 + 12 = 24)
Я не знаю, как ссылаться на данные из подсписка перед тем, который я проверяю в своем цикле, чтобы добиться сравнения, потому что я просто добавляю 0. Я почти уверен, что это то, как я сделал ссылку на предыдущий индекс, который неверен .
list = [['1046', '10'], ['1047','12'], ['1047','12']]
for sublists in list:
if sublists[1] != sublists[1 - 1]:
sublists.append(0)
else:
velocity = float(sublists[2]) + float(sublists[2 - 1])
sublists.append(velocity)
и результирующий список:
R_list = [['1046', '10', 0], ['1047', '12', 0], ['1047', '12', 0]]
Пока я хотел:
R_list = [['1046', '10', 0], ['1047', '12', 0], ['1047', '12', 24]]
Ваша индексация неверна в целом. Попробуйте что-то вроде следующего:
for i in range(1,len(R_list)):
if R_list[i][0]!=R_list[i-1][0]:
R_list[i].append(0)
else:
R_list[i].append(int(R_list[i][1])+int(R_list[i-1][1]))
Для
R_list = [['1046', '10', 0], ['1047', '12', 0], ['1047', '12', 0]]
приведенное выше дает:
[['1046', '10', 0], ['1047', '12', 0, 0], ['1047', '12', 0, 24]]