python基本数据类型之字典
字典dict
字典是另一种可变容器模型,且可存储任意类型对象。
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
常用操作:
- 索引
- 新增
- 删除
- 键、值、键值对
- 循环
- 长度
# 字典 # 1、基本构成 # info = { # "k1" : "v1", #键值对 # "k2" : "v2", # } # 2、字典中的value可以是任何值 想嵌套多少嵌套多少层 # info = { # "k1": 18, # "k2": True, # "k3": [ # 11, # [], # (), # 22, # 33, # { # 'kk1': 'vv1', # 'kk2': 'vv2', # 'kk3': (11,22), # } # ], # "k4": (11,22,33,44) # } # 3、列表、字典不能做为字典的key 如果key相同,输出的时候不打印 # info = { # "k1" : 18, # "k2" : True, # "k3" : [ # 11, # [], # (), # 22, # 33, # { # 'kk1': 'vv1', # 'kk2': 'vv2', # 'kk3': (11,22), # } # ], # "k4" : (11,22,33,44), # "True" : "123" # #[1,2,3,"alex"]: 123,列表不能做key # #{"k1":"v1"} : 123, 字典不能做key # } # print(info) # 4、字典是无序的 # 5、索引方式找到指定元素 # info = { # "k1": 18, # "k2": True, # "k3": [ # 11, # [], # (), # 22, # 33, # { # 'kk1': 'vv1', # 'kk2': 'vv2', # 'kk3': (11,22), # } # ], # "k4": (11,22,33,44) # } # # v = info["k1"] # # print(v) # # v = info[2] # # print(v) # v = info["k3"][5]["kk3"][0] # print(v) # 6、字典支持del 删除 # info = { # "k1": 18, # "k2": True, # "k3": [ # 11, # [], # (), # 22, # 33, # { # 'kk1': 'vv1', # 'kk2': 'vv2', # 'kk3': (11,22), # } # ], # "k4": (11,22,33,44) # } # del info["k1"] # del info["k3"][5]["kk1"] # print(info) # 7 for 循环 # info = { # "k1": 18, # "k2": True, # "k3": [ # 11, # [], # (), # 22, # 33, # { # 'kk1': 'vv1', # 'kk2': 'vv2', # 'kk3': (11,22), # } # ], # "k4": (11,22,33,44) # } # for item in info : #循环字典中的key # print(item) # for i in info.keys(): #循环字典中的key # print(i) # for i in info.values(): #循环字典中的values # print(i) # for i in info.keys(): # print(i,info[i]) # for i,v in info.items(): key 和 values 搜客循环出来 # print(i,v) # ###############字典中特有的功能######################## # 1、根据序列,创建字典,并指定元素 # v = dict.fromkeys(['k',123,'999'],123)#静态方法 # print(v) # 2、根据key获取值,key不存在时,可以指定默认值(None) dic = { "k1":"v1", "k2":[] } # v = dic.get("k1",11111) # print(v) # 3、删除并获取值 # v = dic.pop("k11111",90) # print(dic,v) # k,v = dic.popitem()#随机删除 # print(dic,k,v) # 4、设置值,已经存在不设置,获取当前key对应的值、 # 设置值,不存在设置,获取当前key对应的值 # v = dic.setdefault("k11","13") # print(dic,v) # 5、 已经存在的覆盖key对应的值,不存在创建 # dic.update({'k1':11111,'k3':'alex'}) # dic.update(k1=123,k3=235,k5="asdf") # print(dic) dict
定义:{key1:value1,key2:value2},key-value结构,key必须可hash
特性:
1.可存放多个值
2.可修改指定key对应的值,可变
3.无序
字典内置函数&方法
Python字典包含了以下内置函数:
序号 | 函数及描述 | 实例 |
---|---|---|
1 | len(dict) 计算字典元素个数,即键的总数。 |
>>> dict = {'Name': 'Tom', 'Age': 7, 'Class': 'First'}
>>> len(dict)
3
|
2 | str(dict) 输出字典以可打印的字符串表示。 |
>>> dict = {'Name': 'Tom', 'Age': 7, 'Class': 'First'}
>>> str(dict)
"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"
|
3 | type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。 |
>>> dict = {'Name': 'Tom', 'Age': 7, 'Class': 'First'}
>>> type(dict)
<class 'dict'>
|
Python字典包含了以下内置方法:
序号 | 函数及描述 |
---|---|
1 | radiansdict.clear() 删除字典内所有元素 |
2 | radiansdict.copy() 返回一个字典的浅复制 |
3 | radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
4 | radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值 |
5 | key in dict 如果键在字典dict里返回true,否则返回false |
6 | radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组 |
7 | radiansdict.keys() 以列表返回一个字典所有的键 |
8 | radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 | radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里 |
10 | radiansdict.values() 以列表返回字典中的所有值 |