Проверка двух значений внутри цикла for - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь использовать один цикл for в Python для

  1. Проверьте наибольшее число в пределах list, затем напечатайте индекс, в котором он был найден

  2. Подсчитайте частоту этого наибольшего числа в list.

    for index in range(1, listLength):
        if numbersList[index] > numbersList[largest]:
            largest = index
    

У меня есть часть 1 завершена, однако я не уверен, как тогда я могу искать частоту в той же самой петле для.

Спасибо за вашу помощь.

Ответы [ 5 ]

0 голосов
/ 12 ноября 2018

Есть несколько способов обойти это

a = [1, 9, 3, 7, 5, 9, 7, 4, 9, 5] # test_data
  1. max() и count

    largest = max(a)
    print(largest)          # 9
    print(a.count(largest)) # 3
    

    Как правило, приведенный выше является наиболее распространенным и широко используемым способом получения наибольшего числа и подсчета элементов в списке.

  2. max() и Counter

    from collections import Counter
    c = Counter(a)
    print(c[max(a)]) # 3
    

    Counter от collections и поддерживает различные виды методов. Для получения дополнительной информации, пожалуйста, обратитесь к этому сайту: https://data -flair.training / blogs / python-counter /

0 голосов
/ 12 ноября 2018

Если вы не хотите использовать какие-либо библиотеки, вы можете добиться этого, используя следующий код:

counter = 1
for index in range(listLength):
    if index == 0:
        largest = 0
    if numbersList[index] == numbersList[largest]:
        counter += 1
    elif numbersList[index] > numbersList[largest]:
        counter = 1
        largest = index
0 голосов
/ 12 ноября 2018

Вам не нужно использовать цикл вообще, чтобы достичь этого.Сортируйте список и найдите число по последнему индексу и используйте количество (число), чтобы получить количество вхождений.

numbers = [1, 3, 4, 2, 3, 4, 5]
numbers.sort() 
print(numbers) 
[1, 2, 3, 3, 4, 4, 5]

list.count (число)

[1, 2, 3, 3, 4, 4, 5].count(5)
1

или вы можете использовать импорт ниже

 from collections import Counter
 Counter(list)

даст вам счетчик результатов в формате словаря.

Counter({'1': 1, '2': 1, '3': 2, '4': 2, '5': 1})
0 голосов
/ 12 ноября 2018

Если вам не разрешено использовать встроенные функции, возьмите целое число, например, Count. Это представляет частоту наибольшего числа. Пройдите через массив один раз, и когда вы найдете новое наибольшее число, установите largest = index и counter = 0. Добавьте условие, что если текущее число равно вашему сохраненному наибольшему числу, то увеличьте count на 1.

0 голосов
/ 12 ноября 2018

Для этого есть встроенные методы.

In [110]: lst = [1,2,4,5,66,7,7,4,66,78,1]
In [111]: max(lst)
Out[111]: 78

1.Проверьте наибольшее число в списке, затем распечатайте найденный индекс,

In [112]: print lst.index(max(lst))
Out[112]: 9

2.Считайте частоту этого наибольшего числа в списке.

In [113]: print lst.count(max(lst))
Out[113]: 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...