一.topK python实现 def topk(k, lst): top = [0 for i in range(k)] #生成一个长度为K 的有序列表 for item in lst: #循环将要取 排行榜的列表 for i in range(k-1,-1, -1): if item > top[i]: #在top 表中找到他的位置并插入 top.insert(i+1,item) top.pop(0) #删除值最小 索引为0的元素 break #找到了就打断 print(top) ret
用Regex.Matches方法可以得到同指定正则表达式对应的所有匹配结果.有时,所有匹配结果可能有成千上万个,考虑到性能效率的因素,只需要取出前N个匹配结果.下面的代码演示了做法: 需求:取字符串中前3个数值(相连的数字). Match match = Regex.Match("12ab34de567ab890", @"\d+"); for (int i = 0; i < 3; i++) { if (match.Success) { Response.Wri
Given a non-empty array of integers, return the k most frequent elements. Example 1: Input: nums = [1,1,1,2,2,3], k = 2 Output: [1,2] Example 2: Input: nums = [1], k = 1 Output: [1] Note: You may assume k is always valid, 1 ≤ k ≤ number of unique ele
今天在测试数据的时候偶然发现一个问题,如下: test = ['a','','b','','c','',''] for i in test: if i == '': test.remove(i) print(test) Out[3]: ['a', 'b', 'c', ''] for循环居然不能删除列表中所有空值! 偶然收到@有问题尽管问我 发的消息,才对此问题有些明白.下面是他的原话: for的计数器是依次递增的,但列表的内容已通过remove更改,i迭代的值为a '' '' ''然后越界,所以
一.一个列表中可能含有重复元素,使用set()可以实现列表的去重处理,但是无法知道哪些元素是重复的,下面的函数用于找出哪些元素重复了,以及重复的次数. 代码: from collections import Counter #引入Counter a = [1, 2, 3, 3, 4, 4] b = dict(Counter(a)) print(b) print ([key for key,value in b.items() if value > 1]) #只展示重复元素 print ({key
如何用SQL排除重复结果只取字段最大值的记录?要求得到的结果(即是PID相同的记录只取ID值最大的那一条). select * from [Sheet1$] a from [Sheet1$] where PID=a.PID and ID>a.ID) select a.* from [Sheet1$] a inner join (select PID,max(ID) as max_id from [Sheet1$] group by PID) b on a.PID=b.PID and a.ID=b