python基础学习笔记(四)——字典dictionary

chapter7 字典

字典是一种类似于列表的数据结构,不同之处在于用自定义的关键字作为数据的索引,且每个关键字下的数据内容可为多个。

注意列表的定义格式(此处用字符串作为字典的索引)

ages={
    "Peter":10,
    "Isabel":11,
    "Anna":9,
    "Thomsas":10,
    "Bob":10,
    "Joseph":11,
    "Maria":12,
    "Gabriel":10,
}
print(ages["Peter"])

利用数值作为字典的索引,列表作为每个索引下的内容

d={
    0:[0,0,0],
    1:[1,1,1],
    2:[2,2,2],
}
print(d[2])
[2, 2, 2]

for语句遍历字典的关键字

for name in ages:
    print(ages[name])
11
9
10
10
10
10
12
11

for语句遍历字典的内容values()

for age in ages.values():
    print(age)
10
10
11
10
9
11
10
12

for语句遍历字典的关键字和内容items()

for name,age in ages.items():
    print(name,age)
Peter 10
Isabel 11
Joseph 11
Anna 9
Gabriel 10
Maria 12
Bob 10
Thomsas 10

每个索引关键字下存放多个内容

students={
    "Peter":{"ages":10,"address":"Lisbon"},
    "Isabel":{"age":11,"address":"Sesimbra"},
    "Anna":{"age":9,"address":"Lisbon"}
}
print(students["Peter"])
print(students['Peter']['ages'])
{'address': 'Lisbon', 'ages': 10}
10

for语句遍历字典的索引

for name in students:
    print(students[name])
{'address': 'Sesimbra', 'age': 11}
{'address': 'Lisbon', 'age': 10}
{'address': 'Lisbon', 'age': 9}

for语句遍历字典的内容values

for value in students.values():
    print(value)
{'age': 10, 'address': 'Lisbon'}
{'age': 11, 'address': 'Sesimbra'}
{'age': 9, 'address': 'Lisbon'}
for value in students.values():
    print(value['age'])
11
9
10

for语句遍历字典中的索引和内容

for name,value in students.items():
    print(name,value)
Peter {'age': 10, 'address': 'Lisbon'}
Isabel {'age': 11, 'address': 'Sesimbra'}
Anna {'age': 9, 'address': 'Lisbon'}

len(dict)函数,返回字典的长度,关键字的个数

d[key]函数,返回关键字key下的内容

d[key]=value函数,给关键字key下的内容赋值

del d[key]函数,删除关键字key及其内容

计算列表中学生的平均年龄

def get_ave(dictionary):
    s=0
    for name,age in dictionary.items():
        s=s+age
    return s/len(dictionary)
print(get_ave(ages))

返回最年长学生的名字

def oldest(dictionary):
    oldest_name="none"
    oldest_age=0
    for name,age in dictionary.items():
        if age>oldest_age:
            oldest_age=age
            oldest_name=name
    return oldest_name
print(oldest(ages))

生成一个新的字典,记录年龄大于n的学生

def new_ages(dictionary,n):
    new_ages={}
    for name,age in dictionary.items():
        if age>n:
            new_ages[name]=age
    return new_ages
print(new_ages(ages,9))
print(len(new_ages(ages,9)))

计算学生的平均年龄

def get_ave(dictionary):
    s=0
    for value in dictionary.values():
        s=s+value['age']
    return s/len(dictionary)
print(get_ave(students))
10.0

猜你喜欢

转载自blog.csdn.net/AndesStay/article/details/82585490