a = [[b]str([/b]input()) for i in range(18)]
str лишнее и так из файла подается строка, дальше я потерялся что и зачем делается
проверьте такой вариант
spl = iter([input() for _ in range(18)])
dict_device = {}
for _,dev,price in zip(spl,spl,spl):
if dev in dict_device:
dict_device[dev][0] += 1
if int(price) < dict_device[dev][1]:
dict_device[dev][1] = int(price)
else:
dict_device[dev] = [1, int(price)]
max_dev = max(i[0] for i in dict_device.values())
dict_device = dict((k,v) for k,v in dict_device.items() if v[0] == max_dev)
print(min(dict_device, key = lambda x : dict_device.get(x)[1] ))