字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示
dict = {'name': 'runoob', 'likes': 123, 'url': 'www.runoob.com'}
score ={'Name':'Runoob','Age': 7, 'Class':'First'} #第一中方式,使用[] print(score['Age']) #第二章方式,使用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('你要查询的没有')