【已解决】python如何统计数组的不同数字以及不同数字出现的次数
本帖最后由 paulwinflo 于 2014-06-26 15:25 编辑有这样的一个数组,如何用python实现统计该数组不同的数字以及不同数字出现的次数。所达到效果:8.0 出现2次,4.0出现3次,11.0出现1次。在线等。。。。。。求大神帮帮忙!!! 太简单了,还没毕业的新手吧。
arr =
dic={}
for item in arr:
if item in dic.keys():
dic+=1
else:
dic=1
print(dic)
---------
{8.0: 2, 11.0: 1, 4.0: 3} 本帖最后由 ssfjhh 于 2014-06-26 08:57 编辑
a =
d = {k:a.count(k) for k in set(a)}==============
{8.0: 2, 11.0: 1, 4.0: 3} 回复 3# ssfjhh
谢谢大神!!!么么哒 ssfjhh 发表于 2014-06-26 08:56 static/image/common/back.gif
==============
{8.0: 2, 11.0: 1, 4.0: 3}
你这个代码的时间复杂度远远高于我的代码啊。 搬个板凳, 坐看两位大神 PK. :mrgreen: 回复 5# linustd
恩 这个大神已经如火纯情了 我也来一个:a =
d = {}
).append(k) for k in a]
print {k:len(d) for k in d}
结果{8.0: 2, 11.0: 1, 4.0: 3} 本帖最后由 ssfjhh 于 2014-06-26 17:08 编辑
回复 5# linustd
都用脚本语言了,咱就别考虑这点性能了吧。
另外我把你的代码给改了下。arr =
dic={}
for item in arr:
dic.setdefault(item, 0)
dic += 1
print(dic)a =
dic = {}
for item in a:
dic = dic.get(item, 0) + 1
print(dic) 来围观了,如果是2.6+,直接用标准库:Python 2.7.5 (default, Mar9 2014, 22:15:05)
on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from collections import Counter
>>> cnt = Counter()
>>> for k,v in cnt.iteritems():
... print k, '-->', v
...
8.0 --> 2
11.0 --> 1
4.0 --> 3
页:
[1]
2