Это не особенно запутанно. У вас есть два «уровня», элементы в группе, которые вы расширяете на один уровень. Для этого это не очень запутанно.
Более функциональный способ - объединить все это в одно выражение вложенного списка, я думаю, что это возможно. Но это наверняка не было бы более читабельным, и лично я думаю, что это не пифонично (то есть мне не нравится).
Лично я бы изменил это выражение списка на цикл for для удобства чтения.
new_list = []
for key, value in group.items():
for tariff in value['trf']:
name = ''.join(ncode, vendor, extra, value['suffix'], tariff)
new_list.append(name, value['latest_cost'], value['rrp'], value['rb']])
return new_list
Ну, на самом деле, я бы сделал из этого генератор, потому что они мне нравятся:
def tariffs(group):
for key, value in group.items():
for tariff in value['trf']:
name = ''.join(ncode, vendor, extra, value['suffix'], tariff)
yield [name, value['latest_cost'], value['rrp'], value['rb']]
Вы также можете рассмотреть возможность создания объектов из этого. Как только у вас есть списки списков или словарей словарей, стоит подумать о создании классов.