- Использование множества для хранения name значений:
name_set = set(name for name, _ in kurs)
for x in value['items']:
if x['classId'] in name_set:
for name, price in kurs:
if x['classId'] == name:
if dar < price:
next_def(name, x['classId'])
- Сортировка списка value['items'] и kurs перед циклами:
value_items = sorted(value['items'], key=lambda x: x['classId'])
kurs = sorted(kurs)
i, j = 0, 0
while i < len(value_items) and j < len(kurs):
if value_items[i]['classId'] == kurs[j][0]:
if dar < kurs[j][1]:
next_def(kurs[j][0], value_items[i]['classId'])
i += 1
j += 1
elif value_items[i]['classId'] < kurs[j][0]:
i += 1
else:
j += 1
- Использование словаря для хранения kurs значений:
kurs_dict = dict(kurs)
for x in value['items']:
if x['classId'] in kurs_dict and dar < kurs_dict[x['classId']]:
next_def(kurs_dict[x['classId']], x['classId'])