day05-2018-10--23 字典

                                            认识字典

# dict={0:'数字','a':'字符串',(1,2,3):"元组",True:"bool值"}#  [1]:'list'  TypeError: unhashable type: 'list'}
#
# print(dict[0])# 数字
# print(dict['a'])# 字符串
# print(dict[(1,2,3)])# 元组
# print(dict[True])# bool值

#不可变数据类型:int str tuple bool
#可变数据类型: list dict set

                                            操作

#字典的增加
# dic={}
# dic['name']='周润发'
# dic['age']=10
# print(dic)
#{'name': '周润发', 'age': 10}
# dic.setdefault('李嘉诚')
#{'name': '周润发', 'age': 10, '李嘉诚': None}
# dic.setdefault('李嘉诚','房地产') #如果dict已经存在key 李嘉诚,则setdefault不起作用
# print(dic)
# {'name': '周润发', 'age': 10, '李嘉诚': None}
# dic.update({'name': '周润发', 'age': 10, '李嘉诚': '有钱人','有钱人':'他就是有钱'})
# print(dic)
#{'name': '周润发', 'age': 10, '李嘉诚': '有钱人', '有钱人': '他就是有钱'}
#pop里面必须填一个key
# ret=dict.pop(0)
# print(ret)
#数字
# 随机删除,虽然总是删除最后一个,但是源代码里解释是some pair
#  D.popitem() -> (k, v), remove and return some (key, value) pair as a
#         2-tuple; but raise KeyError if D is empty.
# ret=dict.popitem()
# print(ret)
#(True, 'bool值'),python
# del dict[0]
# print(dict)
#{'a': '字符串', (1, 2, 3): '元组', True: 'bool值'}
# 清空字典所有的内容
# dict.clear()
# print(dict)
#{}
#查询
#dic={'id':1,"name":2333,'age':12}
# print(dic['name'])
#2333
# print(dic.get('age'))
#12
# print(dic.get('id'))
#1
# print(dic.get('nb','noyou'))#找到了返回值,找不到返回第二个参数
#noyou
# print(dic.keys())
#dict_keys(['id', 'name', 'age'])
# for i in dic:
#     print(i)
# id
# name
# age
# print(dic.values())
# for i in dic.values():
#     print(i)
# 1
# 2333
# 12
# print(dic.items())
#dict_items([('id', 1), ('name', 2333), ('age', 12)])
# for i in dic.items():
#     print(i)
# ('id', 1)
# ('name', 2333)
# ('age', 12)
# for key,value in dic.items():
#     print(key,value)

最后说一下关于key,大概hash做了什么如下图

 

类似于,hash把key 转换成 内存地址,通过内存地址更好的找到 key对应的value

 

posted on 2018-10-23 15:30  VastTry  阅读(112)  评论(0编辑  收藏  举报

导航