python05-dict

本文深入讲解了Python中字典的基本概念、数据类型、语法及常用操作,包括增删改查、嵌套字典和for循环的使用。同时,介绍了字典的内部实现原理,如hash算法,以及可哈希与不可哈希数据类型的区分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字典是python中唯一的一个映射类型。他是以{}括起来的键值对组成。在dict中,key是唯一的。在保存的时候,根据key来计算出一个内存地址,然后将key-value保存在这个地址中。这种算法叫做hash算法。所以,dict中存储的key必须是可hash的,可以改变的都是不可哈希的

可哈希(不可变)的数据类型:int,str,tuple,bool

不可哈希(可变)的数据类型:list,dict,set

语法:{key1:value1,key2:value2......}

 

2.字典的相关操作:增删改查

增:

dic = {“昆凌”:“周杰伦的老婆”}

dic['国际章'] = “汪峰的老婆”  #新增,而这种形式,,如果字典中已经有了key,会替换掉原来的数据。

dic.setdefault("马蓉",“王宝强的老婆”)  #如果字典中已经包含了这个key,不再继续保存。

删:

dic.pop(“key”)#返回的是value, 删除一个元素,返回这个元素的value值

del dic["key"]

dic.popitem()#随机删,返回的是元组

dic.clear()#清空字典中所有内容

改:

用key去修改

dict[存在的key] =  新值

d1.update(d2)  #把d2的K-v更新到d1中

查:

dic["key"]

dic.get("key")                 #get后面可以跟一个默认参数,如果查询的key值有,就返回相对应的value;如果查询的key值没有,就返回默认的参数。

setdefault #前提是字典里没有相同的key,如果没有相同的key,则新增;如果有相同的key,则不新增

字典的相关操作:

1. dic.keys()  #拿到所有的key,返回key的集合。像是列表,但不是列表,可以使用下列操作遍历出数据。

for el in dic.keys():

    print(el)

2. dic.values() #拿到所有的value值

3.dic.items() #拿到键值对

for item in dic.items():

    print(item)  #得到的结果是元组 (“key”,"value")

    print(item[0])   # 得到的结果是key

    print(item[1])   # 得到的结果是value

4    解包:  a, b = 1, 2

print(a)  # a=1

print(b)   # b = 2 

dic = {“及时雨”:“宋江”,“易大师”:“剑圣”,“维恩”,“暗影猎手”}
print(dic.items()) #拿到键值对,dict_items([('及时雨',‘宋江’),(“维恩”,“暗影猎手”),(“易大师”,“剑圣”)])

for item in dic.items():

    print(item)        #('及时雨',‘宋江’)

                               (“维恩”,“暗影猎手”)

                               (“易大师”,“剑圣”)

等价于:

for k,v in dic.items():

    print(k,v)           #及时雨,宋江

                                易大师,剑圣   

                                维恩,暗影猎手          

 

6.字典的嵌套

dic = {

    “name”:“汪峰”,

     “age”:“58”,

     “wife”:{

                "name":"国际章",

                 "salary":"180000",

                  "age":"37"

       }

     “children”:[

                {"name":"老大",“age”:28},

                {"name":"老二",“age”:18}

       ]

}

print(dic["children"][1]["age"])  #汪峰老二孩子的年龄

print(dic["wife"]["salary"])   #汪峰老婆的工资

7.字典的for循环

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

for el in dic:  #直接循环字典,拿到的是key

    print(el)      #拿到的是key

    print(dic[el])#拿到的是value

 

 

           

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值