如何统计序列中元素出现的频度

相关案列:某序列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)

 

 

 

 

 

.

 

posted @ 2017-12-26 23:37  田坎上  阅读(228)  评论(0编辑  收藏  举报