字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示
dict = {'name': 'runoob', 'likes': 123, 'url': 'www.runoob.com'}
创建
字典元素的操作
获取字典中的元素
score ={'Name':'Runoob','Age': 7, 'Class':'First'}
#第一中方式,使用[]
print(score['Age'])
7
#第二章方式,使用get()方法
print(score.get('Age'))
7
字典的常用操作
score ={'Name':'Runoob','Age': 7, 'Class':'First'}
print('Name' in score)
print('Name' not in score)
#True
#False
del score['Name']
print(score)
{'Age': 7, 'Class': 'First'}
#清空列表
score.clear()
print('清空的列表',score)
清空的列表 {}
#新增元素
score['Year']=4
print(score)
{'Year': 4}
获取字典视图
score ={'Name':'Runoob','Age': 7, 'Class':'First'}
#获取字典的健
KEYS = score.keys()
print(KEYS)
#dict_keys(['Name', 'Age', 'Class'])
print(type(KEYS))
#<class 'dict_keys'>
print(list(KEYS))
#['Name', 'Age', 'Class']
#获取所有的values
values=score.values()
print(values)
#dict_values(['Runoob', 7, 'First'])
print(type(values))
#<class 'dict_values'>
print(list(values))
#['Runoob', 7, 'First']
#获取所有的keys-values
items = score.items()
print(items)
#dict_items([('Name', 'Runoob'), ('Age', 7), ('Class', 'First')])
print(type(items))
<class 'dict_items'>
print(list(items))
#[('Name', 'Runoob'), ('Age', 7), ('Class', 'First')] #转化之后是由元祖组成的
字典的元素遍历
score ={'Name':'Runoob','Age': 7, 'Class':'First'}
#字典的遍历
for item in score:
print(item,score[item],score.get(item))
Name Runoob Runoob
Age 7 7
Class First First
字典的特点
字典键的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
dict = {'Name': 'Runoob', 'Age': 7, 'Name': '小菜鸟'}
print ("dict['Name']: ", dict['Name'])
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:
实例
dict= {['Name']: 'Runoob', 'Age': 7}
print ("dict['Name']: ", dict['Name'])
字典生成式
#内置函数zip()
keys =['Name','Age', 'Class']
values = ['Runoob',7,'First']
dicts = {keys:values for keys,values in zip(keys,values) }
print(dicts)
#{'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
#upper 将小写转为大写
dicts1 = {keys.upper():values for keys,values in zip(keys,values) }
print(dicts1)
#{'NAME': 'Runoob', 'AGE': 7, 'CLASS': 'First'}
三级菜单的实现
1.省市县
2.可以查询
3.可以返回上一层,退出
area = {
#省
'广东省':{
#市
'广州':{
#区
'番禺区':'...',
'海珠区':'...',
'花都区':'...',
'天河区':'...'
},
'深圳':{},
'东莞':{}
},
'广西省':{},
'福建省':{}
}
current_layer = area
parent_layers = []
flag = True
while flag:
#打印地区
for key in current_layer:
print(key)
#查询地区
choice = input('请选择要查询的地区>>>:').strip()
if len(choice) == 0:continue
if choice in current_layer:
parent_layers.append(current_layer)
current_layer = current_layer[choice]
elif choice == 'b':
if parent_layers:
current_layer = parent_layers.pop()
elif choice == 'q':
flag =False
else:
print('你要查询的没有')