python统计数组元素出现次数以及排序
2017-03-22 18:27
711 查看
最后完成的我的世界阶段,加入了统计热门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 Counter
str = ['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 = 1
l = len(str)-1
x = {}
t = 0
while 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= count
count = 1
t += 1
print x
y = sorted(x.iteritems(), key=lambda x: x[1], reverse=True)
print y
three = (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
给自己一个眼神自己体会
主要流程就是:
将数据库所有的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 Counter
str = ['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 = 1
l = len(str)-1
x = {}
t = 0
while 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
count = 1
t += 1
print x
y = sorted(x.iteritems(), key=lambda x: x[1], reverse=True)
print y
three = (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
给自己一个眼神自己体会
相关文章推荐
- python 统计数组中元素出现次数并进行排序的实例
- python 统计数组中元素出现次数并进行排序
- 统计数组中各个元素出现的次数,并按照次数从大到小排序
- java统计List中的元素重复出现的次数和对map按key或键值排序
- 统计数组中不同元素出现的次数(时间复杂度O(n),空间复杂度o(1))
- 统计一个数字在排序数组中出现的次数(二分法)
- 随机生成长度为100的数组,数组元素为1到10,统计出现次数最多和最少的元素
- 统计一个无序数组中出现次数最多的元素
- 统计数组中不同元素出现的次数(时间复杂度O(n),空间复杂度o(1))
- 剑指offer-38 统计一个数字在排序数组中出现的次数
- 统计数组中元素出现的次数——Java小程序
- 统计数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数(二分法)
- 【c语言】统计一个数字在排序数组中出现的次数
- 统计数字在排序数组中出现的次数
- 按数组中元素出现的次数排序
- 统计一个数字在排序数组中出现的次数(二分法)
- 统计一个数字在排序数组中出现的次数
- 统计一维数组中元素出现次数
- 【C语言】统计数字在排序数组中出现的次数