Наиболее частое число в номере

-8

Цель состоит в том, чтобы выработать самую общую цифру в длинном числе. Например, 213523432455555555 вернет 5.

print('Question 4')

def most_frequent(number):
analysisnumber=map(int,str(number))
returnvalue=[0,0,0,0,0,0,0,0,0,0]
highest = 0
total2=0
for i in range(0,len(str(number))):
returnvalue[analysisnumber[i]] = list(map(i,analysisnumber))
for i in range(0,20):
if i < 10:
if returnvalue[i] > highest:
highest = returnvalue[i]
if i > 10:
if returnvalue[i-10] == highest:
total2+=highest
print("The most frequent number",end="")
if total2 > highest:
print("s are: ")
for i in range(0,10):
if returnvalue[i] == highest:
print(i)
else:
print(" is ", end="")
for i in range(0,10):
if returnvalue[i] == highest:
print(i)
break
number=int(input("Enter the number intended for analysis:"))
most_frequent(number)

Я получаю

TypeError: 'int' object is not callable

ошибка. Хотелось бы помочь!

спросил(а) 2021-01-28T01:41:46+03:00 2 месяца, 2 недели назад
1
Решение
113

Это будет сделано, используйте счетчик:

>>> from collections import Counter
>>> i = 24325872039847324509823475
>>> c = Counter(str(i))
>>> c
Counter({'2': 5, '3': 4, '4': 4, '5': 3, '7': 3, '8': 3, '0': 2, '9': 2})
>>> max(c.items(), key= lambda (x,y): y)
('2', 5)

Или просто используйте (спасибо @tobias_k):

>>> c.most_common(1)
[('2', 5)]

ответил(а) 2021-01-28T01:41:46+03:00 2 месяца, 2 недели назад
106

вы неправильно используете функцию карты.

returnvalue[analysisnumber[i]] = list(map(i,analysisnumber))

первое значение для отображения (из документации) является функцией): map(function, iterable,...)

вы предоставили ему int (i).

ответил(а) 2021-01-28T01:41:46+03:00 2 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема