随机大量数据中找到top3的三个数

突然想写这个是之前在一家面试的时候提到的,当时觉得很简单。回来想了想做起来还是蛮有味道的。

'''相关知识
随机数生成:import random
列表list的应用

'''

N:生成数据量

if __name__ == '__main__':
    Num=input("Imput the cells of list:")
    N=int(Num)
    list1=Creat_random_Num(N)
    print(list1)
    list2=delete_same(list1)
    list3=find_same(list2,list1)
import random
'**************生成数据***********************'
def Creat_random_Num(N):
    list1=[]
    while N!=0:
        temp_Num=random.randint(1,10)
        list1.append(temp_Num)
        N=N-1
        print(N)
    print(list1)
    return list1
'***************************************'
'****************搜索list1中的元素,生成list2***********************'
def delete_same(List1):
    list2=[]
    for i in range(len(List1)):
        if(list2.count(List1[i])==0):
            list2.append(List1[i])
    print(list2)
    return list2
'*************************************'
'********核心的部分:count函数,数据交换,2步长遍历********************'
def find_same(list2,list1):
    list3=[0,0,0,0,0,0]
    for i in range(len(list2)):
        p=list1.count(list2[i])
        print(p)
        for j in range(0,len(list3),2):
            if p>list3[j+1]:
                print(list3[j+1],p)
                p,list3[j+1]=list3[j+1],p
                print(list3[j+1],p)
                print(list2[i],list3[j])
                list2[i],list3[j]=list3[j],list2[i]
                print(list2[i],list3[j])
                print(list3)
    return list3
'*************************************'
开始的思路是要排序,考虑排序之后又要重新遍历就改成了获取成员的思路了。

你可能感兴趣的:(python)