初识字典
-
字典 ---- python中的数据类型之一
-
唯一 一种{} ,键值对的数据
-
dict 字典
-
字典
1、存储大量数据 比列表存储的数据要大
2、将数据和数据之间进行关联
-
定义
dic = {"键":"值"}
dic = {"岳新力":["开车","唱","跳"],"孙一帆":9,25:"海绵",True:"秀",(1,2,3):"大圣",}
print(dic[25]) 输出结果 海绵
print(dic[True]) 结果“秀”
{"键":"值"} # 通过键可以准确的找到值
-
哈希:
#可变数据类型就不可哈希 可变数据类型有list, dict, set 可变就像盖房子,不需要开辟新的空间,直接在所在区域内增删改查,不可变数据类型可哈希,不可变数据类型:int tuple str bool 这些若需要增删改查,需开辟新空间
-
-
字典的键:不可变数据类型(可哈希),唯一(字典中键只能存在一个)
-
字典的值:任意
字典的增(添加)(2)
- 第一种方式 (键=值的形式)
添加 (键=值的形式)
dic = {"key": 1 } #dic ["键"] = ”值“
dic["alex"] =22 **#通过 键值对 的添加**
print(dic) 输出结果 {"key":1,"alex":22}
- 第二种方式 setdefault
setdefault (存在不添加,不存在添加)
dic.setdefault("meet",18) # 参数1:键 参数2 :值 **dic.setdefault(键,值)**
dic.setdefault("key",18) #字典中键不存在时添加,若存在时不进行添加
setdefault: 1,查找, 2添加
1.先通过键去字典中查找,返回的值是None,才会执行第二步
2.将键和值添加到字典中
字典的删(4)
- 第一种方式 clear ( ) 清空
-
dic = {"key":1,"das":"asds"} # 键值对 以逗号分隔 dic.clear() #清空 print (dic) 输出结果 dic ={}
- 第二种方式 pop("键")
#dic.pop(“键”) 根据键的名删除该键的键值对 dic = {'剑圣':'易','哈啥给':'剑豪','大宝剑':'盖伦'} s = dic.pop('哈啥给') # pop删除有返回值,返回的是被删的值 print(s) #剑豪 print(dic) # 打印删除后的字典 {'剑圣': '易', '大宝剑': '盖伦'}
- 第三种方式 popitem()
dis.popitem() 随机删除 Python3默认删除最后一位
4.第四种方式 del
dic={1:2} del dic #删除整个字典 print(dic) #报错,错误是dic未定义,说明del全部删除,直接从内存将这个字典删除 del dic["键"] 指定删除 dic={1:2,"xx":"xx"} del dic["xx"] print(dic) {1:2} 这种形式跟pop差不多
字典所有的操作都是针对键
字典的修改:(2)
-
dic["键"] = "值" # 暴力增加 当键在字典中存在时就修改,不存在时就是增加
-
# dic = {"key":1,"dsb":"alex"} # dic["dsb"] = "Alex" # 修改 存在 把值替换 # dic["ss"] = "Alex" # 增加 不存在 就是增加 # print(dic)
-
dic.update(字典) # update中的字典级别高于前面的字典
dic.update({"键":值 ,"键":值}) # 两个字典合并
dic = {"key":1,"dsb":"alex"} dic.update({"key":2,"meet":28}) # 两个字典合并 print(dic) 输出结果:{'meet': 28, 'dsb': 'alex', 'key': 2} 说明将2个字典合并,不仅可以修改原来dic内容,也可以添加新内容
字典的查:
-
dic = {"key":1,"dsb":"zzz"}
print(dic["dsb"]) 结果是 zzz# 通过键查找值,键存在时返回键对应的值
!!!!print(dic["sads"]) 结果 报错 #通过键查找值,键不存在时报错
-
dic.get("键") # 通过键查找值,键存在时返回键对应的值 (比较温柔的)
print(dic.get("alex")) #通过键查找值,键不存在时返回None
dic.get("alex","没有找到啊")) # 通过键查找值,制定查找不到时返回的内容
print(dic.keys()) # 获取字典中所有的键
print(dic.values()) #获取字典中所有的值
lst = dic.keys() #高仿列表
for i in lst: # 高仿列表可以迭代#
例子 :
dic = {"key":1,"dsb":"alex"} dd = dic.keys() # 高仿列表 print(dd) #dict_keys(['key', 'dsb']) for i in lst: # 高仿列表可以迭代 print(i) #dsb #key 循环输出的是 “键”
-
# 字典是无序的,python3.6版本以上显示时按照定义顺序去显示
items获取字典的key和value:
dic = {"key":1,"key1":2} dd = list(dic.items()) print(dd) 输出结果: [('key1', 2), ('key', 1)] 形成高仿列表 print(dd[0][1]) 输出结果为2 高仿列表能用列表的索引,[0],[1] 显示的是2 dd = list(dic) print(dd) 输出结果:['key1', 'key'] 让字典定义列表,真正的列表只输出“键”
dic = {"key":1,"key1":2,"key2":3,"key3":4} for i in dic.items(): 高仿列表dic.items() print(i[0],i[1]) 输出结果 key 1 key2 3 key1 2 key3 4
解构
解构例子
解构其实就是按照索引分散赋值 # a,b = (10,20) # print(a) 10 # print(b) 20 # a,b = "你好" # print(a) 你 # print(b) 好 # a,b,c = 10,20,30 # print(a) 10 # print(b) 20
聚合
a,b,c,d,*e = [1,2,3,4,5,6,7] # * 聚合 #print(a,b,e) 输出结果:1,2,[3,4,5,6,7]
dic = {"key1":1,"key2":2,"key3":4} for i in dic.items(): k,v = i print(k,v) [("key",1),("key2",2)]
# keys 获取的所有的键 # values 获取的所有的值 # items 获取的所有的键和值,以元组的形式
-