所以我打算打印一個名單和年齡的列表,每個列表在一個單獨的行,然後顯示他們的平均年齡,我需要一些幫助。 這就是我到目前爲止:打印一個名字和年齡的列表,並顯示他們的平均年齡
namn = ["Lena", 22, "Jonas", 26, "Anna", 27, "Kalle", 23, "Erik", 30, "Josefine", 20, "Emelie", 32, "Johanna", 29,
"Peter", 19]
所以我打算打印一個名單和年齡的列表,每個列表在一個單獨的行,然後顯示他們的平均年齡,我需要一些幫助。 這就是我到目前爲止:打印一個名字和年齡的列表,並顯示他們的平均年齡
namn = ["Lena", 22, "Jonas", 26, "Anna", 27, "Kalle", 23, "Erik", 30, "Josefine", 20, "Emelie", 32, "Johanna", 29,
"Peter", 19]
這也適用於:
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
您還可以通過擴展這個在中排序名稱字母順序也是如此。
在Python 2中,您的代碼無法正確計算平均值。事實上,它會輸出''平均年齡:25.000000'',因爲在Python 2中運算符''/''執行整數除法。 – Tonechas
是的,我用python 3寫了這個,OP沒有指定。 – RoadRunner
您必須先創建一個字典。 Here`s代碼
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
這應該工作:
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)))
幫助什麼? – Maroun
向我們展示您到目前爲止所嘗試的代碼,而不僅僅是列表的聲明。 –