如何统计序列中元素出现的频度
相关案列:某序列data=【1,3,4,5,3,4,5,3,5,6,4,6,8,9,0,4,6,7,8,9,544,2】中,找出出现次数最高的3个元素 ,他们出现次数是多少?
from collection import Counter
c=Counter(data)
c,most_common(3)
对字典学生成绩进行排序d={
'lilei':88,'liming':89,'dengqianxi':99,'wangshan':99,'denghanyue':98
}
解决方案一
利用zip将字典转换成元祖
d,keys()
d.values()
sorted(zip(d.values(),d.keys))
解决方案二
sorted(d.items(),key=lambda,x:x[1])
经典案列 如何快速找到多个字典的公共建
篮球得分
12月{‘weide’:44,‘James’:65,‘andongni’:43}
1月{‘weide’:33,‘James’:45,‘保罗’:43}
2月{‘james’:55,‘’hadeng‘’:33,‘安东尼’:54}
解决方法1
res[]
for k in 12:
if k in 1and 2 :
res.append(k)
i
如何让字典保持有序
经典案列参赛选手答题时间及排名{'lilei':(2,54),'lili':(3,55),'liming':(1,34)}
比赛结束后,需按排名顺序一次打印选手成绩,如何实现
使用collection下的OrderDict,以OrderDict替代内置字典Dict,依次将选手成绩存入OrderDict
from collection import OrderDict
d =OrderDict()
d['lilei']=(2,54)
d['lili']=(3,55)
d['limimg']=((1,34))
for k in d
print(k)
实战训练如下
输出结果为:
历史记录功能的实现
from random import randint
from collection import deque
N=randint(0,100)
history=deque([ ],5)
def guss(k):
if k==N:
print('right,very good')
if k<N:
print('小了,小了')
else:
print(大了,大了)
while true:
line=raw_input('plesase input a number:')
if line .isdight():
k=int(line)
history.append(k)
if guss(k):
braek
elif line=='history'
print list(history)
.