我有数组,它保存例如1和0的值。像这样:
['00100','00101','00101','01100','01001','00101']
我想获取数组的每个字符串中每个字符的中位数:
返回将是这样的:
'00101'
如果您可以用Python举个例子,那就太好了。
Python对于此类问题具有自然的习惯用法。这个想法是将所有东西分解成所有0个字符,所有1个字符,所有2个字符等...的好消化的块(zip(* a)部分);然后找出每个块的中位数(sorted(d)[len(a)/ 2]部分);然后将这些块再次结合在一起。这给了我们一线:
def findMedians(a):
return ''.join(sorted(d)[len(a)/2] for d in zip(*a))
print findMedians(['00100','00101','00101','01100','01001','00101'])
# 00101
print findMedians(['1210', '2501', '1234'])
# 1211
如果您觉得这有点令人困惑,请尝试:
print zip('123','456','789')
a = ['123','456','789']
print zip(*a)
看看“ *”运算符在这里做什么。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句