字典

1.数据类型划分:

可变数据类型:字典,列表,集合

不可变数据类型:bool,int,str,元组

1.1 字典的key必须是不可变数据类型,value可以是任何数据类型

2.字典

2.1 优点:能存储大量的数据关系    利用二分查找去查询

2.2 特点:无序的

3.增

dic={"age":18,"name":"jin","sex":"male"}

dic["high"]=185 #没有键值对,添加到最后  {"age":18,"name":"jin","sex":"male","high":185}
dic["age"]=16   #如果有键,则值覆盖      {"age":16,"name":"jin","sex":"male"}
dic.setdefault("weight")
dic.setdefault("weight",150)
dic.setdefault("name","二哥")  #有键,不做任何改变,没有才添加,与前者相反

4.删

dic={"age":18,"name":"jin","sex":"male"}
dic.pop("age")  #有返回值,按键去删除
print(dic.pop("二哥","没有此键"))  #有返回值,可以设置返回值
dic.popitem() #随机删除  有返回值 返回值是键和值组成的元组
dic.clear() #清空字典
del dic  #删除字典

5.查询

dic={"age":18,"name":"jin","sex":"male"}
print(dic.keys())   #列表  dict_keys(['age', 'name', 'sex'])
print(dic.values()) #列表  dict_values([18, 'jin', 'male'])
print(dic.items())  #列表中键值对构成的元组 
dict_items([('age', 18), ('name', 'jin'), ('sex', 'male')])
for i in dic:
    print(i)      #age name sex
for i in dic.keys():
    print(i)     #age name sex
for i in dic.values():
    print(i)     #18,jin,male
for i in dic.items():
    print(i)   #三个元组 ("age",18)("name","jin")("sex","male")
for k,v in dic.items():
    print(k,v) #去掉元组的括号 age 18        name jin        sex male

s=dic.get("age")
print(s)     #18


s1=dic.get("agel","没有这个键")
print(s)      #没有这个键   默认返回值None


6.改

dic={"age":18,"name":"jin","sex":"male"}
dic1={"name":"alex","weight":75}
dic1.update(dic)  #更新到dic1 有键覆盖 没有添加

7.字典的嵌套

dic={"name":["alex","wusir","taibai"],
      "py9":{"time":"1213",
             "learn_money":19800,"addr":"CBD"}
      "age":21}
dic["age"]=56    #"age":21改成"age":56
dic["name"].append("ritian") #"name":["alex","wusir","taibai","ritian"]
dic["name"][1]=dic["name"][1].upper() #"name":["alex","WUSIR","taibai"]
dic["py9"]["female"]=6 #"py9":{"time":"1213","learn_money":19800,"addr":"CBD","female":,6}

8.简单习题

有如下值li=[11,22,33,44,55,66,77,88,90]将所有大于66的值保存在字典的一个key中,将小于66的值保存在第二个key值中。

即{“k1":所有大于66值组成的列表,“k2”:所有小于66值组成的列表}。

li=[11,22,33,44,55,66,77,88,90]
dic={}
li1=[]
li2=[]
for i in li:
    if i==66:
        pass
    elif i > 66:
        li1.append(i)
    else:
        li2.append(i)
dic.setdefault("k1",li1)    #dic["k1"]=li1
dic.setdefault("k2",li2)    #dic["k2"]=li2
print(dic)

9.易错

删除字典中带k的键值对

错误解题方式:

dic={"k1":"v1","k2":"v2","a3":"v3"}
for i in dic:
    if "k" in i:
       del dic[i]
#在循环的字典中,不能删除字典的键

正确的解题方式:

dic={"k1":"v1","k2":"v2","a3":"v3"}
l=[]
for i in dic:
    if "k" in i:
        l.append(i)
for i in l:
    del dic[i]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值