欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

字典

程序员文章站 2023-10-16 22:35:23
字典(dict) 字典是无序的,可变的数据类型 作用:用于存储数据,可以存储大量数据 和列表的区别:字典比列表快,将数据和数据之间进行关联 1.增 2.删 3.改 4.查 5.其他操作 6.解构 7.字典的嵌套 ......

字典(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'])