前言

中位数是一个可将数值集合划分为相等的上下两部分的一个数值。如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数;如果列表数据的个数是偶数,则列表中间那2个数据的算术平均值就是列表数据的中位数。在这个任务里,你将得到一个含有自然数的非空数组(X)。你必须把它分成上下两部分,找到中位数。

输入: 一个作为数组的整数(int)列表(list)的。

输出: 数组的中位数(int, float).

示例

get_median([1, 2, 3, 4, 5]) == 3

get_median([3, 1, 2, 5, 3]) == 3

get_median([1, 300, 2, 200, 1]) == 2

get_median([3, 6, 20, 99, 10, 15]) == 12.5

如何使用:中位数在概率论和统计学中得到应用,它偏态分布中有显著的价值。例如:我们想从一组数据中知道人们的平均财富 -- 100人一个月收入100美元,10人一个月收入1,000,000美元。如果我们算平均值,得到的是91000美元。这是一个完全没有向我们展示真实情况的奇怪的值。所以在这种情况下,中位数会给我们更有用的值和较好的描述。

前提:1 < len(data) ≤ 1000 all(0 ≤ x < 10 ** 6 for x in data)

普通方法:

对列表进行排序,针对列表长度是奇数还是偶数的不同情况,计算中位数。

def get_median(data):

data = sorted(data)

size = len(data)

if size % 2 == 0: # 判断列表长度为偶数

median = (data[size//2]+data[size//2-1])/2

data[0] = median

if size % 2 == 1: # 判断列表长度为奇数

median = data[(size-1)//2]

data[0] = median

return data[0]

最佳方法:

这个解决方法非常巧妙,它利用了取反数和为1的特性,通过列表负索引来获得列表中位数。

对 return (data[half] + data[~half]) / 2的解释:

排序后得到序列[1,2,3,4,5,6],其列表长度为偶数,中位数由列表中间两位元素3(索引为2),4(索引为3)决定。而元素4的负索引为-3,正好是索引2的取反数。

排序后得到序列[1,2,3,4,5],其列表长度为奇数,中位数由列表中间元素3(索引为2,负索引为-3)决定。仍然符合代码。

def get_median(data):

data.sort()

half = len(data) // 2

return (data[half] + data[~half]) / 2

更多Python如何获取列表(List)的中位数相关文章请关注PHP中文网!

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

python取列表中位数_Python如何获取列表(List)的中位数相关推荐

  1. python 提取列表元素_Python如何获取列表中元素的索引,python,获得,某个,index

    由前面<python判断字符串中是否包含子字符串str(这个很重要,经常被问到,会经常使用)index() find()>( https://blog.csdn.net/jiongta94 ...

  2. python取字符串一部分_python,如何获取字符串中的子字符串,部分字符串

    说明: 比如有一个字符串,python,如何就获取前3位,或者后2位.在此记录下. 操作过程: 1.通过分割符的方式,下标的方式,获取字符串中的子串 >>> text = 'pyth ...

  3. Python入门--列表的查询操作--获取列表知道那个元素的索引、获取列表中的单个元素、获取列表中的多个元素

    #列表的查询操作 #获取列表中指定元素的索引 #index()-->如果列表中存在N个相同的元素,只返回相同元素中的第一个索引 # -->如果查询的元素在列表中不存在,则会抛出Valuee ...

  4. React结合虚拟列表VirtualList的动态获取列表项高度问题

    React结合虚拟列表VirtualList的动态获取列表项高度问题: 问题场景:页面查询大量数据的时候结合VirtualList也就是虚拟列表: 例如:手机通讯录查询联系人结合虚拟列表 问题描述: ...

  5. python怎么输出列表中元素的索引_python怎么获取列表元素的索引

    本文主要介绍了python中如何获取列表的索引,以及如何返回列表中某个值的索引. 1.index方法list_a= [12,213,22,2,32] for a in list_a: print(li ...

  6. python元祖用法_Python序列(列表list和元组tuple)用法完全攻略

    所谓序列,指的是一种包含多项数据的数据结构,序列包含的多个数据项(也叫成员)按顺序排列,可通过索引来访问成员. Python 的常见序列类型包括字符串.列表和元组.前一章介绍过的字符串,其实就是一种常 ...

  7. 如何获取sharepoint列表_练习 34 - 获取列表元素 - Learn Python 3 The Hard Way

    练习 34 获取列表元素 列表(list)真的非常有用,前提是你要能获取到它们里面的内容.你已经能够按顺序遍历列表中的元素,但是如果你要取其中的第5个元素,你该怎么操操做?你需要知道如何获取一个列表里 ...

  8. python 定义list长度_python中list列表的高级函数 python如何统计列表的长度

    在python的函数中,如何将列表list的一部分作为函比如定义个函数,想实现的功能就是将列表a的后半部分(['c','d'])传入后面paraTestList(a[2:])中,括号里面的a[2:]命 ...

  9. python返回列表数据类型_python 数据类型之列表(list)

    一.表达方式 1.英文[]表示 2.列表内部可以存储任意类型的数据 3.可变的有序序列 二.常用函数 1.type():查询变量的类型,如type(["name", "s ...

最新文章

  1. DPM系列之一:安装dpm与attach dpmagent
  2. NSMutableParagraphStyle /NSParagraphStyle
  3. linux 发送外部邮件
  4. oracle之单行函数之子查询之课后练习
  5. python标准库之zipfile
  6. python 3.7 replace函数的坑
  7. 深入理解 ASP.NET 动态控件 (Part 1 - 感性认识)
  8. pandas读取csv文件数据并对指定字段使用matplotlib画折线图
  9. Oracle EBS-SQL (PO-10):检查过期采购未接收订单.sql
  10. 微信小程序引入iconfont实现添加自定义颜色图标
  11. Tools - UML绘图工具
  12. 5.3 - 抽屉新热榜
  13. 使用正则表达式在Java中悬挂缩进段落
  14. SEM竞价|这5个方面重要性你理解透没有?
  15. 从零学习VH6501(八) —— 采样点测试
  16. 体检先锋_家居健康小秘笈
  17. linux ln -sv命令,linux ln 命令详解
  18. Vue 设置背景图片
  19. canvas 实现图片预览和下载
  20. 超级详细的晶圆厂前世今生,半导体研究史诗级长文

热门文章

  1. rono在oracle的作用_Oracle中间件的优势有哪些
  2. jsp文件里java代码的作用_如何使用JSP 2避免JSP文件中的Java代码?
  3. 计算机图形学——阴影
  4. python查看list_reverseiterator object中的内容
  5. C++学习笔记系列(一)
  6. MATLAB中如何删除坐标上已画出的内容
  7. 访问linux端口失败_教你如何配置Linux服务器防火墙端口规则
  8. python识别pdf文字_Python 神工具包!翻译、文字识别、语音转文字统统搞定
  9. python怎么测试uwsgi并发量_nginx + uWSGI 为 django 提供高并发
  10. cvtcolor python opencv_13行代码实现:Python实时视频采集(附源码)