1.一个简单的字典
alien_0 ={"color":"green","points":5}
print(alien_0["color"])
print(alien_0["points"])
>>>gree
>>>5
2.使用字典
在Python中,字典是一系列键-值对。每个键都与一个值相关联,你可以使用键来
访问与之相关联的值,与键相关联的值可以是数字,字符串,列表乃至字典。
事实上,可将任何python对象作为字典的值
3.在python中,字典用放花括号{}中的一系列键值对表示,键和值之间用冒号分隔,而键-值对之间
用逗号分隔
例:aline_0={'color':'green'}
4.访问字典中的值
要获取与键相关联的值,可依次指定字典名和放在方括号内的键
例:alien_0={"color":"green"}
print(alien_0["color"])
这将返回字典alien_0中与键"color"相关联的值:
green
5.添加键-值对
字典是一种动态结构,可随时在其中田间键-值对
例:
alien_0 ={"color":"green","points":5}
print(alien_0)
alien_0['x_position]=0 #1
alien_0['y_position']=25 #2
print(alien_0)
首先定义前面一直使用的字典,然后用打印这个字典,以显示其信息快照
在#1处。添加一个键-值对,其中的键为“x-position”,而值为0,#2处同理
{"color":"green","points":5}
{"color":"green","points":5,'y_position':25,'x_positiom':0}
注 键值对不关心添加顺序,只关心键和值的关联关系
6.创建空字典
s = {}
s = dict()
两种方式都是创建空字典
例:
aline_0={} #空字典
aline_0['color']='green'
aline_0['points']=5
print(aline_0) #返回{"color":"green","points":5}
7.修改字典中的值
要修改字典中的值,可依次制定字典名,用方括号[ ] 括起的键以及与该键相关联的新值
8.删除键-值对
对于字典中不再需要的信息,可使用del语句将相应的键-值对彻底删除
使用del语句时,必须指定字典名和要删除的键
9.遍历字典
方法:可以使用一个for循环来遍历字典
例:
user_0={"username":"efermi","first":"ebrico","last":"fermi"}
for key,value in user_0.items():
print("\nKey:" + key)
print("Value:" + value)
在python中不关心键-值对的存储顺序,而只跟踪键和值之间的关联关系
10.遍历字典中所有键
在不需要使用字典中的值,方法key()很有用
例:
favorite_languages={"jen":"pyrhon","sarah":"c","edward":"ruby","phil":"python"}
for name in favorite_languages.key():
print(name.title()) #Jen Sarah Phil Edward
遍历字典时,会默认遍历所有的键 用for name in favorite_languages:,输出不变
11.按顺序遍历字典中的所有键
字典总是明确地记录键和值之间的关联关系,但获取字典的元素时,获取顺序时不可预测的。
要以特定的顺序返回元素,一种办法是在for循环中返回的键进行排序
为此,可使用函数sorted()来获得按特定顺序排列的键列表的副本
例:
favorite_languages={"jen":"pyrhon","sarah":"c","edward":"ruby","phil":"python"}
for name in sorted(favorite_languages.key()):
print(name,title()+",thank you for taking the poll.")
#Edward,thank you for taking the poll.
Jen,thank you for taking the poll.
Phil,thank you for taking the poll.
Sarah,thank you for taking the poll.
12.遍历字典中的所有值
使用方法values(),它返回一个值列表,不包含任何键,用法同遍历键一样
13.字典的嵌套
有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套
例:
As =[] #创建一个空列表
for i in range(30):
a = {"name":"大头","age":13}
As.append(a)
print(As)
首先创建一个空列表,用于存储接下来创建的字典,range() 返回一系列数字,其唯一用途
告诉python要循环这个多少次,每执行这个循环,就创建一个a,添加到As列表中,共循环30次
14 在字典中存储列表
有时候,需要列表存储在字典中
例:pizza = {"crust":"thick","topping":["mushrooms","extra cheese"]}#存储所点pizza的信息
print("You ordered a "+pizza["crust"]+"-crust pizza"+"with the following topping:")
for topping in pizza["topping"]:
print("\t"+topping)
首先创建以一个字典,其中存储了有关顾客所点pizza的信息,在这个字典中,一个键是"crust"
与之关联的值是字符串"thick";下个键是"toppings",与之相关联的是一个列表,其中存储了顾客要求
添加的配料,用for循环打印"toppings"列表,结果如下
You ordered a thick-crust pizza with the following topping:
mushrooms
extra cheese
15 在字典中存储字典
可以在字典中存储字典,不过代码会比较复杂
例:
users = {'aeinstein':{'first':'albert','last':'einstein','location':'princeton'},
'mcurie':{'first':'marie','last':'curie','location':'paris'}},
for username , user_info in users.items():
print("\nUsetname:" + username)
full_name = user_info['first']+' '+user_info['last']
locatin = user_info['location']
print('\tFull name:'+full_name.title())
print('\tLocation:'+location.title())
首先我们定义 一个名为users的字典,其中包含两个键:用户名'aeinstein'和'mcurie';
与每个键相关联的值都是一个字典,其中包含用户名,姓和居住地
for语句遍历字典users 将键存储username中,并以此将当前键关联的" 值 "存储在user_info中
输出如下
Usetname:aeinstein
Full name: Albert Einstein
Location: Princeton
Usetname: Mcurie
Full name:Marie Curie
Location:Paris
list比较,dict有以下几个特点:
1.查找和插入的速度极快,不会随着key的增加而变慢;
2.需要占用大量的内存,内存浪费多。
而list相反:
1.查找和插入的时间随着元素的增加而增加;2.占用空间小,浪费内存很少。