Python学习笔记(4)Dictimaries

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}

exercises with sub-dictionaries

猜你喜欢

转载自blog.csdn.net/tinpo_123/article/details/79794567