打印包含姓名和年龄的列表,并显示其平均年龄

时间:2016-06-15 08:30:23

标签: python python-2.7

因此,我倾向于打印一个名单和年龄的列表,每个列表都在一个单独的行上,然后显示他们的平均年龄,我需要一些帮助。 这是我到目前为止所得到的:

namn = ["Lena", 22, "Jonas", 26, "Anna", 27, "Kalle", 23, "Erik", 30, "Josefine", 20, "Emelie", 32, "Johanna", 29,
    "Peter", 19]

3 个答案:

答案 0 :(得分:0)

您必须先创建一个字典。 这是代码

def name_age(namn):
    dic = {}
    age = 0
    for n in range(0, len(namn), 2):
        dic[namn[n]] = namn[n+1]
    for i in dic:
        print i, dic[i]
        age = age + dic[i]
    avg_age = age / len(dic)
    return avg_age

答案 1 :(得分:0)

这应该有效:

data = {name: age for name, age in zip(namn[0::2], namn[1::2])}
for name, age in data.iteritems():
    print '%11s: %d' % (name, age)
print 'Average age: %f' % (sum(data.values())/float(len(data)))

答案 2 :(得分:0)

这也有效:

pairs = dict([tuple(namn[i:i+2]) for i in range(0, len(namn), 2)])
for name, age in sorted(pairs.items()):
    print("%s: %d" % (name, age))

avg_age = sum(pairs.values())/ len(pairs)
print("Average Age: %f" % (avg_age))

输出:

Anna: 27
Emelie: 32
Erik: 30
Johanna: 29
Jonas: 26
Josefine: 20
Kalle: 23
Lena: 22
Peter: 19
Average Age: 25.333333

您也可以通过按字母顺序对名称进行排序来扩展它。