#python
Вопрос:
Я работаю над созданием функции, которая возвращает наибольшее значение в списке.
Это последовательность задач, поэтому сначала я создал функцию для броска определенного количества кубиков d6, например, бросок(n). Затем я создал новую функцию, чтобы выяснить, какое число выпадало чаще всего, что дало мне список, выглядящий следующим образом: [0, 1, 0, 3, 1, 0]. Теперь моя проблема заключается в том, чтобы создать функцию, которая находит наиболее частый элемент в этом списке.
До сих пор я создавал этот фрагмент кода:
def find_most(amount): most = 0 for I in amount: if I > most: most = I return most
Поэтому сейчас моя проблема заключается в том, чтобы найти способ преобразовать данное число обратно в бросок костей. В настоящее время он просто выдаст число 3, так как это самое большое число в моем списке примеров, но я хочу, чтобы оно дало мне число 4, так как в списке показано, что я бросил 4, 3 раза, когда бросал 5 кубиков.
Я попытался использовать индексацию и другую функцию if — elif, но она не дает мне правильного номера.
Комментарии:
1.
collections.Counter(rolls).most_common(1)
Даст вам кортеж наиболее распространенных результатов и # рулонов.2. функция защиты(l): m = статистика.режим(l) возврат (m, l.количество(m))
Ответ №1:
most = max(frequencies) dice_roll_digit = frequencies.index(most)
frequencies
это список всех собранных вами частот.
Комментарии:
1. Это помогло! Пришлось внести одну поправку, чтобы заставить его дать правильный бросок. Поскольку индексация начинается с 0: большинство = максимум(частоты) dice_roll_digit = частоты.индекс(большинство) 1, Но спасибо 😀