字典

字典(dict)

字典是无序的,可变的数据类型

作用:用于存储数据,可以存储大量数据

和列表的区别:字典比列表快,将数据和数据之间进行关联

定义一个字典:
    dic = {"a":1,"b":2,"c":3}
字典中逗号分隔的叫做一个元素      键:值    (其他语言中叫键值对)
字典中的键:可哈希(不可变的数据类型)   --避免哈希冲突使用开放寻址法
          键要求是唯一的,如果有重复,后边的值将覆盖前边的值
       值:不可哈希(可变的数据类型),可以任意类型
           

1.增

dic = {"a":1,"b":2,"c":3}

#dic[键] = 值
例:
dic["d"] = 4   
print(dic)       #{'a': 1, 'b': 2, 'c': 3, 'd': 4}

#dic.setdefault(键,值)
例:
dic.setdefault("d",4)
print(dic)       #{'a': 1, 'b': 2, 'c': 3, 'd': 4}
                 # 执行程序:1.先拿新的键在字典中进行查询
                 #         2.如果存在不添加,不存在执行添加
    
    

2.删

dic = {"a":1,"b":2,"c":3}

#del dic[键]
例:
del dic["a"]
print(dic)        #{'b': 2, 'c': 3}

#del.pop(键)
例:
dic.pop("a")      
print(dic)        #{'b': 2, 'c': 3}
    
#del.clear()  --清空
例:
dic.clear()
print(dic)        #{}

3.改

dic = {"a":1,"b":2,"c":3}

#dic[键] = 值  字典中没有某个键值对时就是添加,键存在于字典中就是修改
               --    有则改,无则加
例:
dic["c"] = 4
print(dic)        #{'a': 1, 'b': 2, 'c': 4}

#dic.update(要更新的字典)  括号中的字典级别要高于前面的字典级别
例:
dic.update({"d":4,"e":5})
print(dic)        #{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}


dic1 = {"d":4,"e":5}

dic.update(dic1)
print(dic1)       #{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

4.查

dic = {"a":1,"b":2,"c":3}

#使用for循环
for i in dic:
    print(i)        # a
                      b
                      c
            

#dic.get(键)        #通过键获取值,不存在于字典中则返回 None
例:
print(dic.get("a"))       # 1

#dic[键]           #通过键获取值,不存在于字典中则报错
print(dic["a"])           # 1

5.其他操作

#获取所有键值对
for i in dic:
    print(i,dic.get(i))
    
dic = {"a":1,"b":2,"c":3}

获取键和值,支持循环,不支持索引
#获取键
print(dic.keys()) 
  #dict_keys(['a', 'b', 'c'])    --获取字典中所有键并形成高仿列表

#获取值
print(dic.values())
  #dict_values([1, 2, 3])        --获取字典中所有值并形成高仿列表

#获取所有键值对
print(dic.items())
  #dict_items([('a', 1), ('b', 2), ('c', 3)])  --以元组形式存                                                 放在高仿列表中
for i in dic.items():
    print(i[0],i[1])
    
#获取字典中的所有的值并形成列表
print(list(dic.values()))     #[1,2,3]

6.解构

a = 10
b = 20
a,b = b,a
print(a,b)

#除了布尔值都可以结构
a = 1,2      #本质上时一个元组
print(a)

a,b = [1,2]
print(a,b)

a,b = (3,4)
print(a,b)

a,_,b = (3,4,5)
print(a,b)        #等号后边的值和前边的变量名要一一对应

a,b = '12'
print(a,b)

a,b = {"a":1,"b":2}
print(a,b)        # a b  #获取到的是键

#循环字典获取键和值
for k,v in dic.items():
    print(k,v)

7.字典的嵌套

#查找的时候一层一层的通过键进行查找

dic = {'name':'汪峰','age':48,'wife':[{'name':'国际章','age':38}],'children':['第一个熊孩子','第二个熊孩子']}

获取国际章
print(dic[wife][0]['name'])
原文地址:https://www.cnblogs.com/qqmb/p/11165565.html