亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
【已解決】python如何統(tǒng)計(jì)數(shù)組的不同數(shù)字以及不同數(shù)字出現(xiàn)的次數(shù)
[打印本頁(yè)]
作者:
paulwinflo
時(shí)間:
2014-06-25 23:48
標(biāo)題:
【已解決】python如何統(tǒng)計(jì)數(shù)組的不同數(shù)字以及不同數(shù)字出現(xiàn)的次數(shù)
本帖最后由 paulwinflo 于 2014-06-26 15:25 編輯
有這樣的一個(gè)數(shù)組[8.0, 4.0, 4.0, 4.0, 11.0,8.0],如何用python實(shí)現(xiàn)統(tǒng)計(jì)該數(shù)組不同的數(shù)字以及不同數(shù)字出現(xiàn)的次數(shù)。所達(dá)到效果:8.0 出現(xiàn)2次,4.0出現(xiàn)3次,11.0出現(xiàn)1次。在線等。。。。。。求大神幫幫忙!!
作者:
linustd
時(shí)間:
2014-06-26 07:44
太簡(jiǎn)單了,還沒畢業(yè)的新手吧。
arr = [8.0, 4.0, 4.0, 4.0, 11.0,8.0]
dic={}
for item in arr:
if item in dic.keys():
dic[item]+=1
else:
dic[item]=1
print(dic)
---------
{8.0: 2, 11.0: 1, 4.0: 3}
作者:
ssfjhh
時(shí)間:
2014-06-26 08:56
本帖最后由 ssfjhh 于 2014-06-26 08:57 編輯
a = [8.0, 4.0, 4.0, 4.0, 11.0,8.0]
d = {k:a.count(k) for k in set(a)}
復(fù)制代碼
==============
{8.0: 2, 11.0: 1, 4.0: 3}
作者:
paulwinflo
時(shí)間:
2014-06-26 11:00
回復(fù)
3#
ssfjhh
謝謝大神!。∶疵磭}
作者:
linustd
時(shí)間:
2014-06-26 12:26
ssfjhh 發(fā)表于 2014-06-26 08:56
==============
{8.0: 2, 11.0: 1, 4.0: 3}
你這個(gè)代碼的時(shí)間復(fù)雜度遠(yuǎn)遠(yuǎn)高于我的代碼啊。
作者:
q1208c
時(shí)間:
2014-06-26 14:27
搬個(gè)板凳, 坐看兩位大神 PK.
作者:
paulwinflo
時(shí)間:
2014-06-26 15:23
回復(fù)
5#
linustd
恩 這個(gè)大神已經(jīng)如火純情了
作者:
Hadron74
時(shí)間:
2014-06-26 15:53
我也來一個(gè):
a = [8.0, 4.0, 4.0, 4.0, 11.0,8.0]
d = {}
[d.setdefault(k,[]).append(k) for k in a]
print {k:len(d[k]) for k in d}
復(fù)制代碼
結(jié)果
{8.0: 2, 11.0: 1, 4.0: 3}
復(fù)制代碼
作者:
ssfjhh
時(shí)間:
2014-06-26 16:57
本帖最后由 ssfjhh 于 2014-06-26 17:08 編輯
回復(fù)
5#
linustd
都用腳本語(yǔ)言了,咱就別考慮這點(diǎn)性能了吧。
另外我把你的代碼給改了下。
arr = [8.0, 4.0, 4.0, 4.0, 11.0,8.0]
dic={}
for item in arr:
dic.setdefault(item, 0)
dic[item] += 1
print(dic)
復(fù)制代碼
a = [8.0, 4.0, 4.0, 4.0, 11.0,8.0]
dic = {}
for item in a:
dic[item] = dic.get(item, 0) + 1
print(dic)
復(fù)制代碼
作者:
timespace
時(shí)間:
2014-06-26 22:41
來圍觀了,如果是2.6+,直接用標(biāo)準(zhǔn)庫(kù):
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from collections import Counter
>>> cnt = Counter([8.0, 4.0, 4.0, 4.0, 11.0,8.0])
>>> for k,v in cnt.iteritems():
... print k, '-->', v
...
8.0 --> 2
11.0 --> 1
4.0 --> 3
復(fù)制代碼
作者:
ssfjhh
時(shí)間:
2014-06-27 08:51
回復(fù)
10#
timespace
Nice.
這個(gè)才是最好的解決方案。
作者:
Hadron74
時(shí)間:
2014-06-27 10:17
回復(fù)
10#
timespace
還是這個(gè)好!
作者:
reyleon
時(shí)間:
2014-07-01 20:18
回復(fù)
10#
timespace
大師,收徒弟不?
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2