python位运算之计算中位数

时间:2021-04-07 17:51:16
# -*- 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))