"""Последовательность режимов линейной катушки и именованные результаты.

Вход: L [Гн], список токов [А]. Выход: три словаря с I [А] и Ψ [Вб·виток].
Перечисление enumerate сохраняет порядок входных режимов. Полевой расчёт
не выполняется; постоянная L исключает насыщение.
"""

# 1. Словарь хранит параметры, список — последовательность токов в СИ.
parameters = {'inductance_h': 0.12}
currents_a = [0.0, 2.0, 4.0]
rows = []

# 2. Один проход формирует строки: номер режима, ток, потокосцепление.
for index, current_a in enumerate(currents_a):
    row = {'current_a': current_a, 'linkage_wb': parameters['inductance_h'] * current_a}
    # Сохраняем весь словарь; append не меняет ранее записанные строки.
    rows.append(row)
    print(index, row['current_a'], row['linkage_wb'], sep='; ')

# 3. Проверяем число режимов, последнюю величину и правую границу range.
assert len(rows) == 3
assert abs(rows[-1]['linkage_wb'] - 0.48) < 1e-12
assert list(range(0, 5, 2)) == [0, 2, 4]
