我遇到了麻烦。 我有以下列表:
listA = [
[
{u'source': u'manual', u'value': 10},
{u'source': u'manual', u'value': 10},
{u'source': u'manual', u'value': 20},
{u'source': u'manual', u'value': 30},
{u'source': u'manual', u'value': 10},
{u'source': u'manual', u'value': 10},
{u'source': u'manual', u'value': 10},
{u'source': u'manual', u'value': 30}
],
[
{u'source': u'manual', u'value': 20},
{u'source': u'manual', u'value': 50},
{u'source': u'manual', u'value': 80},
{u'source': u'manual', u'value': 60},
{u'source': u'manual', u'value': 10},
{u'source': u'manual', u'value': 10},
{u'source': u'manual', u'value': 40},
{u'source': u'manual', u'value': 30}
],
[
{u'source': u'manual', u'value': 60},
{u'source': u'manual', u'value': 20},
{u'source': u'manual', u'value': 40},
{u'source': u'manual', u'value': 30},
{u'source': u'manual', u'value': 20},
{u'source': u'manual', u'value': 10},
{u'source': u'manual', u'value': 50},
{u'source': u'manual', u'value': 10}
]
]
我想做的是循环嵌套列表,提取字典值(第一个嵌套列表的第一个位置,第二个嵌套列表的第一个位置,第三个嵌套列表的第一个位置 ->第一个嵌套列表的第二个位置,第二个嵌套列表的第二个位置,第三个嵌套列表的第二个位置等(,然后找到"x"位置值的中值。
谢谢!
您可以将列表推导与zip
一起使用:
from statistics import median
[median(i['value'] for i in l) for l in zip(*listA)]
# [20, 20, 40, 30, 10, 10, 40, 30]
如果你想要numpy,你可以使用numpy.median:
import numpy as np
result = np.median([[i['value'] for i in l] for l in zip(*listA)], axis=1)
print(result)
输出
[20. 20. 40. 30. 10. 10. 40. 30.]