Dictionary 其实就是一种键值对的数据结构
ages={
"Peter":10,
"Isabel":11,
"Anna":9,
"Thomas":10,
"Bob":10,
"Joseph":11,
}
print(ages["Peter"])
输出结果:10
使用items()函数获取键-值
ages={
"Peter":10,
"Isabel":11,
"Anna":9,
"Thomas":10,
"Bob":10,
"Joseph":11,
}
for a,b in ages.items():
print(a,":",b)
输出结果:
Isabel : 11
Bob : 10
Joseph : 11
Peter : 10
Anna : 9
Thomas : 10
keys不必必须是字符串,values也不一定是整型,他们可以是任意的数据类型。
dic={
0:[1,2,3],
1:[2,3.4],
2:[3,4,5],
}
print(dic[0])
输出结果:[1, 2, 3]
注意:每个键值队之间有逗号
你也可以使用字典类型当作value
students={
"Peter":{"age":10,"sex":'m'},
"Anna":{"age":11,"sex":'f'},
}
print(students["Peter"])
输出结果:{‘age’: 10, ‘sex’: ‘m’}
注意:字典的名字后面有=号,但是作为value的字典没有=号
Exercises with dictionaries
-
1.
ages={
"Peter":10,
"Isabel":11,
"Anna":9,
"Thomas":10,
"Joseph":11,
"Maria":12,
"Gabriel":10
}
print(len(ages))
输出结果:7
2.
ages={
"Peter":10,
"Isabel":11,
"Anna":9,
"Thomas":10,
"Joseph":11,
"Maria":12,
"Gabriel":10
}
def cal_ave_age(dic):
sum=0
for a,b in dic.items():
sum+=b
return sum/len(dic)
print(cal_ave_age(ages))
输出结果:10.428571428571429
我想格式化输出,所以我就改掉了最后一条语句,改为:
print("average age:{:.1f}".format(cal_ave_age(ages)))
输出结果:10.4
ages={
"Peter":10,
"Isabel":11,
"Anna":9,
"Thomas":10,
"Joseph":11,
"Maria":12,
"Gabriel":10
}
def the_oldest_student(dic):
max_age=-1
name=""
for n,a in dic.items():
if(a>max_age):
max_age=a
name=n
return name
print(the_oldest_student(ages))
输出结果:Maria
ages={
"Peter":10,
"Isabel":11,
"Anna":9,
"Thomas":10,
"Joseph":11,
"Maria":12,
"Gabriel":10
}
def looking_for_certain_age(dic,n):
new_dic={}
for a,b in dic.items():
if(b==n):
new_dic[a]=b
return new_dic
print(looking_for_certain_age(ages,10))
输出结果:{‘Thomas’: 10, ‘Peter’: 10, ‘Gabriel’: 10}