python位运算之计算中位数

# -*- coding: utf-8 -*-
# @Time : 2018/11/23 10:49 PM
# @Author : cxa
# @File : 1.py
# @Software: PyCharm

# 中位数
# L = [0, 1, 2, 3, 4]  # 2
L = [0, 1, 3, 4, 5,7]
L.sort()
l_len = len(L)
n = (l_len - 1) // 2 #向下取整
# C语言中&表示按位与,0x开头的表示的是十六进制数,k&0x1表示k与0x1按位与,
# 其效果为取k的二进制中最右边的数字,该式也可以用做判断k的奇偶性, 如果k为奇数,其计算结果为1,否则为0。

if l_len & 0x1:
    print(L[n])
else:
    print("%.1f" %((L[n] + L[n+1]) / 2.0))

posted @ 2018-11-23 23:29  公众号python学习开发  阅读(2108)  评论(0编辑  收藏  举报