Python 从字典中的嵌套列表中查找列的平均值';s值

Python 从字典中的嵌套列表中查找列的平均值';s值,python,average,Python,Average,我有一本有两把钥匙的字典(狗和猫): 我需要找到每个键的值的嵌套列表的平均值。例如,对于dog,我需要找到平均值4.1和1.2,以及7.0和3.4 我遇到的问题是嵌套列表将数字作为字符串。我想我需要一个外部while循环来控制列数,然后是一个内部while循环来控制行数,但是我不知道如何设置它。如何访问每个关键点的内部列表,然后访问更深的列表以找到平均值 for keys in d: for values in d[keys]: (2 while loops here)

我有一本有两把钥匙的字典(狗和猫):

我需要找到每个键的值的嵌套列表的平均值。例如,对于dog,我需要找到平均值4.1和1.2,以及7.0和3.4

我遇到的问题是嵌套列表将数字作为字符串。我想我需要一个外部while循环来控制列数,然后是一个内部while循环来控制行数,但是我不知道如何设置它。如何访问每个关键点的内部列表,然后访问更深的列表以找到平均值

for keys in d:
    for values in d[keys]:
        (2 while loops here)
我会这样做吗


谢谢。

假设字典中的值只包含两个元素的列表(同样是列表):

d={'dog':['4.1','7.0','dog'],['1.2','3.4','dog']],'cat':['1','8.2','5.501','cat'],['6.5','8','9.1','cat']}
avg_dict={}
对于输入d:
平均列表=[]
i=0
而(i
for keys in d:
    for values in d[keys]:
        (2 while loops here)
d = {'dog': [['4.1', '7.0', 'dog'], ['1.2', '3.4', 'dog']], 'cat': [['1', '8.2', '5.501', 'cat'], ['6.5', '8', '9.1', 'cat']]}

avg_dict = {}
for key in d:
    avg_list = []
    i = 0
    while (i < len(d[key][0]) - 1):
        avg_list.append((float(d[key][0][i]) + float(d[key][1][i])) /2.0)
        i += 1
    avg_dict[key] = avg_list

print(avg_dict)
def calc_avg(animal):
    vals = [map(float, animal[i][:-1]) for i in range(len(animal))]
    animal_name = animal[0][-1:]
    return map(lambda tup: sum(tup)/len(tup), zip(*vals)) + animal_name    


d = {'dog': [['4.1', '7.0', 'dog'], ['1.2', '3.4', 'dog']], 'cat': [['1', '8.2', '5.501', 'cat'], ['6.5', '8', '9.1', 'cat']]}
print calc_avg(d['cat']) # prints [3.75, 8.1, 7.3004999999999995, 'cat']