字典是一系列键值对,每个键都与一个值相关联,可以使用键来访问对应的值。
Python中字典用放在花括号({})中的一系列键值对表示:
alien_0 ={'color':'green',‘points':5}
对于字典你想储存多少个键值对都可以
对字典的访问
指定字典名和放在方括号内的键。
alien_0 ={'color':'green',‘points':5}
print(alien_0['color'])
print(alien_0['points'])
添加键值对
要添加键值对,需依次指定字典名、用方括号括起的键和相关联的值
alien_0['x.position']=10
alien_0['y.positiom']=25
字典的元素顺序与你定义的元素顺序相同,但如果字典打印出来或遍历其元素,元素的排列顺序与添加顺序相同
alien_0 ={'color':'green',‘points':5}
alien_0['x.position']=10
alien_0['y.positiom']=25
print(alien_0)
{'color' : 'green' , ‘points' : 5 , 'y.position' :25 , 'x.position' : 10}
注意此时你添加的键值对是按照栈的顺序排列。
修改字典中的值
依次指定字典名、用方括号包括的键以及与键关联的新值
alien_0 ={'color':'green',‘points':5}
alien_0['color] ='red' \\ 修改字典的值
删除字典中的值
只需要del 加对应的键位
alien_0 ={'color':'green',‘points':5}
del alien_0[' points '] \\删除points键
类似对象组成字典
favorite_languages ={
'jen' : 'python',
'sarah' : 'c',
'edward' : 'ruby',
'phil' : 'python'
}
把对象的一些信息都储存在字典中,定义格式最好像上面所示,一个花括号,下一行一个缩进符加键位加键值,后接一个逗号,依此这样,最后一行补上花括号。
字典名 ={
’键位名1‘ :’键位值1' ,
'键位名2’ : ‘键位值2’ ,
'键位名3’ : ‘键位值3’ ,
·····
}
get()来访问值(既可以访问字典存在的键的值,也可以访问字典中不存在的键的值)
alien_0 ={'color':'green',‘points':5}
print(alien_0['points'])
//会出错,因为字典中没有points键。
number_value = alien_0.get( 'number' : 'No number value assigned']
print(number_value) //输出'No number value assigned'
如果get()函数中不加第二个参数,就会打印出None,代表值不存在。
.items()用两个for循环遍历字典中的所有键值对
people ={
'first_name' : '阿',
' last_name' : '杰',
'age' : '19',
'city' : '湖南'
}
for key,value in people.items():
print(f"\n{key}")
print(value)
.keys()遍历字典中的所有键
people ={
'first_name' : '阿',
' last_name' : '杰',
'age' : '19',
'city' : '湖南'
}
for key in people.keys():
print(f"\n{key}")
.values()遍历字典中的所有值
在遍历值中可能有些值是一样的,如果直接打印会出现重复的值,我们可以用set()函数来消除重复项。
people ={
'first_name' : '林',
' last_name' : '志杰',
'age' : '19',
'city' : '邵阳'
}
for value in people.values():
print(value)
集合和字典的区别
他们都是用花括号来定义,当花括号内无键值对是,就是集合。
集合不会以特定的顺序来储存元素。
languages ={'python' , 'C' , 'C++' , 'python'}
print(languages) //集合的打印会自动消除重复项
嵌套的使用
字典列表:
同时有多个字典,可全部访问所有列表中的信息。
alien_0 ={'color':'green','points':5}
alien_1={'color':'red','points':10}
alien_3={'color':'blue','points':15}
aliens=[alien_0,alien_1,alien_2]
for alien in aliens:
print(alien)
aliens=[]
for alien_number in range(30): \\执行循环30次,增加30个绿外星人
new_alien ={'color':'greem','points':5}
aliens.append(new_alien)
for alien in aliens[0:5]
print(alien)
在字典中储存列表
有些键需要关联多个值时:
favorite_languages = { 'jen': ['python', 'ruby'], 'sarah': ['c'], 'edward': ['ruby', 'go'], 'phil': ['python', 'c++'] } for name, languages in favorite_languages.items(): print(f"\n{name.title()}'s languages:") for language in languages: //在这里也是用一个for循环来遍历languages中的列表 print(language.title())
字典中储存字典
cities = { 'changsha': { 'country': 'china', 'province': 'hunan', 'popular_place': 'window of world' }, 'bingdao': { 'country': 'gelinlangdao', 'province': 'aerlan', 'popular_place': 'beijinxing' }, 'shanghai': { 'country': 'china', 'province': 'shanghaishi', 'popular_place': 'dongfanmingzhu' } } for city_name, scenes in cities.items(): //在这里是把scenes看成了一个字典名 print(f"\n{city_name.title()}") value = f"{scenes['country']},{scenes['province']},{scenes['popular_place']}" print(value)