python: 求一个数字中出现频率最高的数。 例如:longestDigitRun(11777332) return 7

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python: 求一个数字中出现频率最高的数。 例如:longestDigitRun(11777332) return 7相关的知识,希望对你有一定的参考价值。

参考技术A 我想了种恶心的方法。嘿嘿。不过是可以实现的。像下面的什么from collections import Counter我发现我的3.x不能运行。 如果某个数字出现的最高次数相等,就应该是多个数,而不是一个数字,所以结果我认为应该是个列表。

mydic =
getkey = ''
mylist =[]
in_str = input('input your number: ')
for evestr in in_str:
myitem = in_str.count(evestr)
mydic[evestr] = myitem
for k in mydic.keys():
if mydic[k] == max(mydic.values()):
mylist.append(k)
print(list(set(mylist)))
参考技术B def longestDigitRun(num):
a = str(num)
return int(reduce(lambda x,y: x if a.count(x) > a.count(y) else y,set(a)))

print longestDigitRun(11777332)

把 int 转化成 str 就很好处理了,python对字符串的操作非常强大。
参考技术C from collections import Counter
def longestDigitRun(num):
return int(Counter(str(num)).most_common(1)[0][0])

print longestDigitRun(11777332)

注意这个假设你的python版本是2.7

参考资料:http://docs.python.org/2/library/collections.html#collections.Counter

参考技术D def longestDigitRun(arg):
strarg = str(arg)
v = 0
for i in range(10):
u = 0
for j in range(len(strarg)):
if i == int(strarg[j]):
u = u+1
if u > v:
v = u
k = i
print(i,v)
return(k)

print(longestDigitRun(17777733321))

凑合一下能用。试试看。
第5个回答  2013-01-31 def longestDigitRun(number):
number = str(number)
count = [0,0,0,0,0,0,0,0,0,0]
for d in number:
count[int(d)] = count[int(d)] + 1
max = 0
index = -1
i = 0
for n in count:
if max < n:
max = n
index = i
i = i + 1
return index
print longestDigitRun(11777332)

Python练习题3.6求整数序列中出现次数最多的数-修正版

本题要求统计一个整型序列中出现次数最多的整数及其出现次数。

输入格式:

输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。

输出格式:

在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。

代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-

s = list(map(int,input().split(" ")))
s1 = s[1:]
s2 = list()

for i in range(0,len(s1)):
    v = s1.count(s1[i])
    s2.append(v)

m = max(s2)
n = s2.index(m)

print(s1[n],int(m))

原文链接:https://www.cnblogs.com/Renqy/p/12718089.html

原文没有切片,第一个整数个数也计算进去了,半天找不到错误。


读书和健身总有一个在路上

以上是关于python: 求一个数字中出现频率最高的数。 例如:longestDigitRun(11777332) return 7的主要内容,如果未能解决你的问题,请参考以下文章

Python练习题3.6求整数序列中出现次数最多的数-修正版

求一个程序,要求是: 设计一个函数,以字符串为参数,返回该字符串中出现频率最高的字符。

python输入一段英文文本,统计出现频率最高的前5个单词?

编写一个算法来查找数组中出现频率最高的元素。给出算法的时间复杂度

python3 练习题100例 (二十三)与7相关的数

python 从字典中找到出现频率高的单词