Как исправить '.' не является внутренней или внешней ошибкой команды

Добавьте все значения в список в набор.

Найдите индекс из трех верхних значений в наборе в исходном списке.

]

Изменить

thelist = [1, 45, 88, 1, 45, 88, 5, 2, 103, 103, 7, 8]
theset = frozenset(thelist)
theset = sorted(theset, reverse=True)

print('1st = ' + str(theset[0]) + ' at ' + str(thelist.index(theset[0])))
print('2nd = ' + str(theset[1]) + ' at ' + str(thelist.index(theset[1])))
print('3rd = ' + str(theset[2]) + ' at ' + str(thelist.index(theset[2])))

Изменить

Вы все еще не сказали нам, как обращаться с «совместными победителями», но, глядя на ваши ответы на другие ответы, я предполагаю, возможно, это может быть то, что вы пытаетесь сделать, может быть? Если это не тот результат, который вы хотите, дайте нам пример вывода, который вы надеетесь получить.

thelist = [1, 45, 88, 1, 45, 88, 5, 2, 103, 103, 7, 8]
theset = frozenset(thelist)
theset = sorted(theset, reverse=True)
thedict = {}
for j in range(3):
    positions = [i for i, x in enumerate(thelist) if x == theset[j]]
    thedict[theset[j]] = positions

print('1st = ' + str(theset[0]) + ' at ' + str(thedict.get(theset[0])))
print('2nd = ' + str(theset[1]) + ' at ' + str(thedict.get(theset[1])))
print('3rd = ' + str(theset[2]) + ' at ' + str(thedict.get(theset[2])))

Выход

1st = 103 at [8, 9]
2nd = 88 at [2, 5]
3rd = 45 at [1, 4]

Кстати: что, если все значения одинаковы (равны первым) или по какой-то другой причине нет третьего места? (или второе место?). Вам нужно защититься от этого? Если вы это сделаете, я уверен, что вы можете разработать соответствующие защитные экраны, чтобы добавить код.

30
задан Lakshmi Narayanan 24 December 2013 в 18:32
поделиться