给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字 ,返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况)

 1 """
 2 #给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字
 3 #返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况)
 4 解题思路:
 5 1.设定一个空字典,去存储列表中的值和值出现的次数
 6 2.使用L.count()方法可以统计出L中值出现的次数
 7 3.使用sorted方法可以进行排序,sorted(iterable,key,reverse)
 8 注意key是函数
 9 4.列表中的元祖取值 d[i][j] i是哪一个元祖,j是元祖中的第几个值
10
11 """
12 def sort(N):
13     d = {}
14     for i in L:
15         d[i] = L.count(i)
16     #print(d)
17     dd = sorted(d.items(),key= lambda item : item[1],reverse= True)
18     print(dd)
19     for i in range(0,N):
20         print("出现次数排第%d的数字是%d,共出现了%d次" % (i+1,dd[i][0],dd[i][1]))
21 if __name__ == ‘__main__‘:
22     L = [1, 2, 3, 2, 3, 1, 2, 1, 2, 3, 2, 1, 4, 3, 2]
23     l = len(set(L))
24     N = int(input("请输入一个不大于%d的数:" % l))
25     sort(N)

原文地址:https://www.cnblogs.com/tengtenga/p/9886519.html

时间: 2024-08-05 10:53:54

给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字 ,返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况)的相关文章

python_exercise_给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字 ,返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况)

# 设定给出的非空数组为list_a,如下list_a = [8,1,3,5,1,2,45,8,5,7,7,8,8,8,8,8,8,5,5] # 将list_a去重,留下唯一值list_a_set = set(list_a) # 将list_a去重后的值作为字典的key放到字典中list_a_dict = {x:None for x in list_a_set} # 遍历将list_a去重后的唯一值,统计唯一值出现的次数.把次数作为字典的value放到字典中for l in list_a_set

给定一个只包含字符’(’,’)’,’{’,’}’,’[‘和’]'的字符串,判断输入字符串是否有效

public class Bracket { public static void main(String[] args) { String str = "[()]"; System.out.println(isValid(str)); } // [()] public static boolean isValid(String str) { Stack<Character> stack = new Stack<>(); Map<Character, Ch

python小练习:给定一个非空且为正整数的列表 按重复次数 降序排列输出

假设有个列表  a=[1,1,1,2,2,4,5,5,5,5] (非空且为正整数) 那么根据要求 最终输出的形式为  5,1,2,4  (按重复次数 降序排列输出) 代码实现及解释: a=[1,1,1,2,2,4,5,5,5,5]num=[] for i in a: s = a.count(i) num.append(s)#取出数字出现的次数 放进num中 num1 = sorted(num,reverse=True)# 降序排列num 并赋值给num1num2=list(set(num1))#

课堂练习:给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。

一.题目 1 给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数. 2 要求: (1) 写一个函数 f(N) ,返回1 到 N 之间出现的“1”的个数.例如 f(12)  = 5. (2)在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少. 二.设计思想 (1)一位数时 f(0)=0;f(1)=1;f(2-9)=1; (2)二位数时 f(10)=1+(0+1)=2; f(11)=(1+1)+(1+1)=4; f(12)=(1+1)+(2+1)=5;

给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。

一.题目: n给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数. n要求: n写一个函数 f(N) ,返回1 到 N 之间出现的 “1”的个数.例如 f(12)  = 5. n在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少. 二.解题思路: 无. 三.程序源码: import java.util.*; public class main { public static void main(String[] args) { // TODO Au

在一组降序排列的数组中插入一个数据,插入后,数组中数据依然按降序排列

分析: 1.数组固定,是一个倒序的数组 2.插入一个数据,这个数据插在哪呢,要比较,与数组中所有的元素比较,这里需要一个循环,因为是降序的数组,所以当第一次遇到比自己小的,那么这个位置就是要插入的位置 3.因为上一步被占了位置,那么从这个插入的数据开始,后面的原本的数据都得向右移一位 /** * */ package com.cn.u4; import java.util.Scanner; /** * @author Administrator *向有序数组中插入学员成绩 * 在一组降序排列的数

转&lt;&lt;C#集合Dictionary中按值的降序排列

转载地址:http://blog.sina.com.cn/s/blog_5c5bc9070100pped.html C#集合Dictionary中按值的降序排列 static void Main(string[] args) { Dictionary<string, int> dt = new Dictionary<string, int>(); dt.Add("美丽",2); dt.Add("校园",1); dt.Add("大学&

假设用一个名为text的字符串向量存放文本文件的数据,其中的元素或者是一句话或者是一个用于表示段分隔的空字符串。将text中第一段全改为大写形式

#include<iostream> #include<string> #include<vector> using namespace std; int main() { vector<string> str={"The is C++ program ","hfh ","","hfdshfisoid"}; for(auto it=str.begin();it!=str.end(

javascript实现表格升序降序排列

javascript实现表格升序降序排列的步骤如下: 1,生成表格,并给各列表头添加onclick的排序响应函数 2,取得表格各行的数据,并存入临时数组 3,对该临时数组进行排序 4,利用createDocumentFragment,appendChild方法把排序好的数组转换成表格输出,至此排序完毕. 详细代码如下: 经测试可以直接使用 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht