python统计数组元素出现次数以及排序

数组:

a = [1, 2, 3, 4, 2, 1, 4, 1, 1]

首先转换为字典,转换为“元素-出现次数”对:

b = {}
for i in a:
    b[i] = a.count(i)

实现方式一(冒泡):

c = b.items()#转换为列表
for j in range(len(b)):
    for i in range(len(b)-j-1):
        if c[i][1] < c[i+1][1]:
            c[i] ,c[i+1] = c[i+1],c[i]
print c

实现方式二(内置函数):

d =  b.items()#转换为列表
d.sort(key=lambda x:x[1],reverse=True)
print d
时间: 2024-08-24 13:22:34

python统计数组元素出现次数以及排序的相关文章

用reduce装逼 之 多个数组中得出公共子数组,统计数组元素出现次数

昨天做了一道美团的面试题,要求是给N个数组,找出N个数组的公共子数组. var a = [7,2,3,4,5]; var b = [4,2,3,7,6]; var c = [2,3,3,3,7]; var d = [4,2,3,8,7]; 以上四个数组,有公共子数组2, 3,7 function main(){ var result = []; var arr = arguments[0]; for(var i=1 ; i<arguments.length ; i++){ var arr = a

统计数组元素的个数和唯一性的函数

有些函数可以用来确定数组中的值总数及唯一值的个数.使用函数count()对元素个数进行统计,sizeof()函数时count()的别名,他们的功能是一样的. ①函数count() 函数count()的作用是计算数组中的元素数目或对象中的属性个数.对于数组,返回其元素的个数,对于其他值则返回1.如果参数是变量而变量没有定义或是变量包含一个空的数组,该函数会返回0.该函数有两个参数,其函数原型如下: int count(mixed var [,int mode]) 其中第一个参数是必需的,传入要计数

【C语言】统计数组中出现次数超过一半的数字

//统计数组中出现次数超过一半的数字 #include <stdio.h> int Find(int *arr, int len) { int num = 0; //当前数字 int times = 0; //当前数字出现的次数 int i = 0; for (i = 0; i<len; i++) { if (times == 0) { num = arr[i]; times = 1; } else if (arr[i] == num) times++; else times--; }

php统计数组元素个数

count():对数组中的元素个数进行统计; sizeof():和count()具有同样的用途,这两个函数都可以返回数组元素个数.可以得到一个常规标量变量中的元素个数,如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0; array_count_value():统计每个特定的值在数组$array中出现过的次数; 如: $array=array(4,5,1,2,3,1,2,1); $ac=array_count_value($array); 将创建一个名为

数组之 -- 数组元素的比较、排序

前言: 当我们在使用Java,应该"优选容器而不是数组".只有在证明性能成为问题,并且切换到数组对性能提高有所帮助时,你才应该使用数组. 排序: 排序必须根据对象的实际类型执行比较操作.一种自然的解决方案是为每种不同的类型各编写一个不同的排序方法,但是这样的代码难以被新的类型所复用. 程序设计的基本目标是:"将保持不变的事物与会发生改变的事物相分离",而这里,不变的是通用的排序算法,变化的是各种对象相互比较的方式.因此,不是将进行比较的代码编写成不同的子程序,而是使

python 统计日志IP出现次数

cat test 218.79.251.215 - - [23/May/2006:08:57:44 +0800] "GET /fg172.exe HTTP/1.1" 206 2350253 220.178.150.3 - - [23/May/2006:08:57:40 +0800] "GET /fg172.exe HTTP/1.1" 200 2350253 59.42.2.185 - - [23/May/2006:08:57:52 +0800] "GET

awk 统计域出现的次数并且排序

[[email protected]_166_163_centos ~]# cat 1aaabbbdeesxdsscsdxcsdsxfdd [[email protected]_166_163_centos ~]# awk '{num[$1]++} END{for(k in num)print k,"----",num[k]|"sort -rk 2"}' 1s ---- 6d ---- 6x ---- 3b ---- 3a ---- 3e ---- 2c ----

剑指offer python版 数组中出现次数超过一半的数字

def aa(nums): if not nums: return False hashes={} ret=[] for s in nums: hashes[s]=hashes[s]+1 if hashes.get(s) else 1 if hashes[s] >len(nums)/2: ret.append(s) return list(set(ret)) print(aa([1,2,3,2,2,2,2,2,3,2,3,3,4])) 原文地址:https://www.cnblogs.com/x

让无序数组元素进行排序,排序完后将排序后元素对应的原先元素的位置输出

题目: 让无序数组元素进行排序,排序完后将排序后元素对应的原先元素的位置输出 (1)方法1 方法1:先将数组元素原先的对应位置记录在另一个数组中       并在进行选择排序的过程中,交换数组元素的同时也交换对应位置数组中的对应元素值 /* 选择法排序 并在排序后的数组元素在原先数组的对应位置输出 方法1:先将数组元素原先的对应位置记录在另一个数组中 并在进行选择排序的过程中,交换数组元素的同时也交换对应位置数组中的对应元素值 */ #include <iostream> using name