Python之字典

字典是为能够更准确地为各种真实物体建模。你可以新创建一个表示人的字典,然后想在其中存储多少信息就存储多少信息:姓名、年龄、地址、职业以及要描述的任何方面。你还能够存储任意两种相关的信息,如一系列单词及其含义等。

一个简单的字典

person.py

person = {'name':'杨明','age':23}
print(person['name'])
print(person['age'])

执行结果:

这里写图片描述

添加键-值对

字典是一种动态结构,可随时在其中添加键-值对,可一次指定字典名、用方括号括起的键和相关联的值。

为第一个例子添加性别和地址的键-值对:

person = {'name':'杨明','age':23}
print(person)
#为该人添加性别和地址
person['sex'] = 'woman'
person['address'] = '北京市海淀区'
print(person)                         

输出结果为:

这里写图片描述

删除键-值对

对于字典中不再需要的信息,可使用del语句将相应的键-值对彻底删除。使用del语句时,必须指定字典名和要删除的键。
例如,将上述中年龄删除

person = {'name':'杨明','age':23}
print(person)
#为该人添加性别和地址
person['sex'] = 'woman'
person['address'] = '北京市海淀区'
print(person)   
#删除年龄
del person['age']
print(person)  

输出结果:

这里写图片描述

遍历字典

一个Python字典可能只含几个键-值对,也可能包含数百个键-值对。鉴于字典可能包含大量的数据,Python支持对字典遍历。

使用for循环遍历键-值对

favourties_lang = {
    'su':'C++',
    'yang':'Python',
    'liu':'java',
    }
for key,value in favourties_lang.items():
    print(key.title()+"'s favorties lang is "+value.title()+".")

输出结果:

这里写图片描述

分别遍历字典中的键和值

favourties_lang = {
    'su':'C++',
    'yang':'Python',
    'liu':'java',
    }
print("遍历其中的键:")
for name in favourties_lang.keys():
    print(name)
print("遍历其中的值:")
for language in favourties_lang.values():
print(language)

输出结果:

这里写图片描述

注意:上述单独取出字典中的值是没有考虑重复。涉及的值很少时,这也许不是问题,但如果被调查者很多,最终列表可能包含大量的重复项。为剔除重复项,可使用集合(set)。

favourties_lang = {
    'su':'C++',
    'yang':'Python',
    'liu':'java',
    'zhang':'Python',
    }
for language in set(favourties_lang.values()):
    print(language)

输出结果:

这里写图片描述

嵌套

有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。

例如:

#创建一个用于存储人的空列表
people = []

#创建30个女性
for person in range(30):
    new_person = {'sex':'woman','worker':'Doctor'}
    people.append(new_person)

#显示前五个人
for doctor in people[:5]:
    print(doctor)
    print('......')

#显示创建了多少个人
print("此次创建了:"+str(len(people)))

输出结果:

这里写图片描述

在字典中存储列表

有时候,需要将列表存储在字典中,而不是将字典存储在列在表中。
person.py

#创建一个存储人信息的字典
person ={
    'name':"杨明",
    '爱好':['阅读','旅游','音乐'],
    }

#概述这个人的爱好
print(person['name']+"的爱好有:")

for hobbies in person['爱好']:
print(hobbies)

输出结果:

这里写图片描述

发布了35 篇原创文章 · 获赞 9 · 访问量 8万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章