亚洲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 編輯
  1. a = [8.0, 4.0, 4.0, 4.0, 11.0,8.0]
  2. 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è):
  1. a = [8.0, 4.0, 4.0, 4.0, 11.0,8.0]
  2. d = {}
  3. [d.setdefault(k,[]).append(k) for k in a]
  4. print {k:len(d[k]) for k in d}
復(fù)制代碼
結(jié)果
  1. {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)性能了吧。
另外我把你的代碼給改了下。
  1. arr = [8.0, 4.0, 4.0, 4.0, 11.0,8.0]
  2. dic={}
  3. for item in arr:
  4.     dic.setdefault(item, 0)
  5.     dic[item] += 1
  6. print(dic)
復(fù)制代碼
  1. a = [8.0, 4.0, 4.0, 4.0, 11.0,8.0]
  2. dic = {}
  3. for item in a:
  4.     dic[item] = dic.get(item, 0) + 1
  5. print(dic)
復(fù)制代碼

作者: timespace    時(shí)間: 2014-06-26 22:41
來圍觀了,如果是2.6+,直接用標(biāo)準(zhǔn)庫(kù):
  1. Python 2.7.5 (default, Mar  9 2014, 22:15:05)
  2. [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
  3. Type "help", "copyright", "credits" or "license" for more information.
  4. >>> from collections import Counter
  5. >>> cnt = Counter([8.0, 4.0, 4.0, 4.0, 11.0,8.0])
  6. >>> for k,v in cnt.iteritems():
  7. ...     print k, '-->', v
  8. ...
  9. 8.0 --> 2
  10. 11.0 --> 1
  11. 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