python統計數組元素出現次數以及排序

來源:互聯網
上載者:User

最後完成的我的世界階段,加入了統計熱門UP主的模組:統計所有視頻的UP主出現最多的次數,擷取前10的UP主。

主要流程就是:

將資料庫所有的author擷取放入數組,進行次數統計;

對次數進行排序,當然對應的UP主也是需要跟著跑的,因此考慮到使用字典;

擷取前10名的UP主。

過程中我得到協助的有:

Python統計列表中的重複項出現的次數的方法_python_指令碼之家  http://www.jb51.net/article/53911.htm

Python刪除list中的元素  https://www.douban.com/note/277146395/

Python中 字典排序、列表排序 - duhaizhang的個人頁面  https://my.oschina.net/duhaizhang/blog/71123

統計次數最終我還是自己寫出來了,沒有用內建的函數,因為後面需要字典來排序,所以內建函數可以當作瞭解。

其實自己寫也不是很難,主要把握好下標的變化和長度的變化即可。

from collections import Counterstr = ['Tom', 'Sim', 'Jack', 'Tom', 'Sleep', 'We', 'Tom', 'Tom', 'Sim', 'We', 'Tom']dic = Counter(str)for i in dic.iteritems():    print i[0], i[1]count = 1l = len(str)-1x = {}t = 0while t <= l:    th = str[t]    i = t + 1    while i <= l:        if th == str[i]:            count += 1            del str[i]            i -= 1            l -= 1        i += 1    x[th] = count    count = 1    t += 1print xy = sorted(x.iteritems(), key=lambda x: x[1], reverse=True)print ythree = (y[0], y[1], y[2])for t in three:    print t[0]item = x.items()item.sort()for k,v in item:    print k,v
運行結果:

We 2
Sleep 1
Jack 1
Sim 2
Tom 5
{'We': 2, 'Sleep': 1, 'Jack': 1, 'Sim': 2, 'Tom': 5}
[('Tom', 5), ('We', 2), ('Sim', 2), ('Sleep', 1), ('Jack', 1)]
Tom
We
Sim
Jack 1
Sim 2
Sleep 1
Tom 5
We 2

以上代碼是我解決統計次數的過程。

而當具體應用到實際模組那裡,就前後多了兩步,這裡就不放代碼了:

把str改成從資料庫擷取到的資料

最後只需要字典前10的元素

即可。


---------------17年8月8號更新---------------

話不多少了,前幾天才寫的一篇博

溫故而知新,我覺得可以--Python番 -》 http://blog.csdn.net/zy_dream/article/details/76571974

給自己一個眼神自己體會

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.