字典是为能够更准确地为各种真实物体建模。你可以新创建一个表示人的字典,然后想在其中存储多少信息就存储多少信息:姓名、年龄、地址、职业以及要描述的任何方面。你还能够存储任意两种相关的信息,如一系列单词及其含义等。
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()+".")输出结果:
输出结果:
注意:上述单独取出字典中的值是没有考虑重复。涉及的值很少时,这也许不是问题,但如果被调查者很多,最终列表可能包含大量的重复项。为剔除重复项,可使用集合(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)输出结果:
