统计字符出现次数并排序(hash)

统计字符出现次数并排序

class Hist(dict):
    def add(self, item, increment=1):
        """increase num"""
        self[item] = increment + self.get(item, 0)

    def counts(self, reverse=False):
        """return"""
        aux = [(self[k], k) for k in self]
        aux.sort()
        if reverse:
            aux.reverse()
        return [k for v, k in aux]

test = Hist()
test.add(5)
test.add(5)
test.add(1)
test.add(1)
test.add(5)
test.add(2)
print test
print test.counts()
[8, 2, 1, 7, 5, 4, 3, 9]
[(8, 0), (2, 1), (1, 2), (7, 3), (5, 4), (4, 5), (3, 6), (9, 7)]
[(1, 2), (2, 1), (3, 6), (4, 5), (5, 4), (7, 3), (8, 0), (9, 7)]
[2, 1, 6, 5, 4, 3, 0, 7]    
时间: 2024-10-09 16:15:49

统计字符出现次数并排序(hash)的相关文章

统计字符出现次数

如何统计字符串中每个字符出现的次数,这类题遇到过很多次,下面就来谢谢解决思路: 可采用HashMap来解决,HashMap存储的是键值对,即key-value;每个key对应一个value值,利用这个特性,可以将字符看为key,value看做字符出现的次数,这样就可以很好地解决这个问题,下面给出详细代码: 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 import java.u

Python统计字符出现次数(Counter包)以及txt文件写入

# -*- coding: utf-8 -*- #spyder (python 3.7) 1. 统计字符(可以在jieba分词之后使用) from collections import Counter from operator import itemgetter # txt_list可以写成函数参数进行导入 txt_list = ['千古','人间','人间','龙','龙','龙','哈哈哈','人才','千古','千古'] c = Counter() for x in txt_list:

(实验6)编写统计字符出现次数函数

自己编写一个字符串链接函数:函数首部定义为void fun(char a[],char b[])其功能是:将形参数组b中的字符顺序连接到形参数组a的字符串后面.注:不能使用字符串的复制和连接函数.例如:a中的字符串为hello,b中的字符串为123,则字符串a中的内容为hello123. main函数中输入两字符串赋给字符数组str1和str2,调用fun函数,使其功能改为统计字符串2在字符串1中出现的次数. #include<stdio.h>#include<string.h>i

js统计字符出现次数

var s = "The rain in Spain falls rain mainly in the rain plain"; var reg = new RegExp("rain", "g"); alert(s.match(reg).length);

杭电oj1860:统计字符(字符串hash / 水题)

统计字符 题目链接 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description 统计一个给定字符串中指定的字符出现的次数 Input 测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为一个长度不超过80的字符串.注意这里的字符串包含空格,即空格也可能是要求被统计的字符之一.当读到'#'时输入结束,相应的结果不要输出.

数组去重及排序/0~10随机数字/字符串中出现最多的字符及次数

数组去重及排序: var arr = [1,5,1,2,6,8,1,81,9,0]; for(var i=0;i<arr.length;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i] == arr[j]){ arr.splice(j,1); j--; } } } arr.sort(function(a,b){ return a-b; // 从小到大排序 }) alert(arr); // 0,1,2,5,6,8,9,81 arr.sort(fu

统计字符次数

输入一个字符串(长度在100以内),统计其中数字字符出现的次数. 样例输入 Ab100cd200 样例输出 6 #include"stdio.h" int main() { char a[100]; int i; int sum=0; scanf("%s",a); for(i=0;a[i]!='\0';i++) if(a[i]>='0'&&a[i]<='9') sum++; printf("%d",sum); retu

定义一个字符数组并初始化,统计字符&#39;a&#39;或&#39;A&#39;出现的次数

1 package com.imooc.array; 2 3 public class SortDemo2 { 4 5 public static void main(String[] args) { 6 //定义一个字符数组并初始化,统计字符'a'或'A'出现的次数 7 //定义一个字符数组ch并初始化 8 char[] ch={'a','b','c','A','a','d','a','e','f','g'}; 9 //循环遍历数组,统计字符'a'或'A'出现的次数 10 int sum=0;

python统计apache、nginx访问日志IP访问次数并且排序(显示前20条)

前言:python统计apache.nginx访问日志IP访问次数并且排序(显示前20条).其实用awk+sort等命令可以实现,用awk数组也可以实现,这里只是用python尝试下. apache脚本: ips = {} with open("/root/mail_access_log-20180629") as fh:     for line in fh:         ip = line.split(" ")[0]         if 6 < le