四、字典

1.字典的创建

①使用花括号    ②使用内置函数:

>>>d1 = {"name":'jack', "age":20}

>>>d2 = dict(name='tom',age=20)

 

 

2.增删改查清空

新增:d1['sex'] = "male"        #当字典中d1中没有键“sex”时,就会新增

修改:d1['name'] = "tom"      #当字典中d1中没有键“sex”时,就会新增

删除:del d1['name']             #删除的是键值对

查询:d1["name"] 

清空:d1.clear()            #清空字典中所有的键值对  

3.字典元素的获取

使用中括号

>>>print(d2["name"])        #键存在,返回键对应的值 jack

 

>>>print(d1['sex'])        #键不存在,返回keyerror

4.字典操作方法

4.1  dict.get()              获取键对应的值。键存在,返回键对应的值18;键不存在,返回None,支持设置默认值

>>>v1 = d1.get('age')              #18 

4.2  dict.keys()              以列表的形式返回字典中所有的键

>>>k_list = d1.keys()            #['name','age']

4.3  dict.values()              以列表的形式返回字典中所有的值
>>>v_list = score.values()               #["jack",18]

4.4  dict.items()                  以列表的形式返回字典中所有的键值对,每一个键值对是一个元组  

>>>k_v = d1.items()                  #[('name','jace'),('age',18)]

4.5 dict.fromkeys(seq [,value])            创建一个新的字典,第一个参数是序列,以序列的每个值作为字典的键,第二个参数作为字典的值,返回新的字典

>>>lst1 = ["name","age","sex"]

>>>d3 = dict.formkeys(lst1)                #{"name":None, "age":None, "sex":None}

4.6 dict.pop("key")               从字典中删除指定的键,并返回该键对应的值

>>> name = d1.pop("name")                 #“jack”

4.7 dict.popitem()              从字典中删除最后一项,并以元组的形式返回该键值对

>>> item = d1.popitem()           # ("age",18)

4.8  dict.setdefault(key, default=None)    用于设置键的默认值,若字典键存在则忽略;若没有则新建该键值对

>>>d1.setdefault("sex","male")        #{"name":'jack', "age":20, "sex":"male"}

4.9   dict.update(d2)           用于将字典2中的值更新到字典1中,若字典1中存在则修改,若不存在则添加

>>>d3 = {"name":"tom", "age":18; "sex":"male"}

>>>d1.update(d3)             #d1 =  {"name":"tom", "age":18; "sex":"male"}

 

5  key的判断 

in  / not in  

不单单是字典,元组,列表,字符串都支持。

 

6. 遍历
>>>for item in scores:
>>>  print(item)             #打印的是字典的键

 

7.字典生成式
内置函数 zip() 将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然会返回这些元组组成的列表。当列表长度不一致,以短的创建字典

>>>lst1 = ["name", "age", “sex”]

>>>lst2 = {"jack", 18, "male"}

>>>d4 = {key:value  for key,value in zip(lst1 ,lst2)}       #d4 = {"name":'jack', "age":20, "sex":"male"}

 

posted @ 2023-05-26 14:07  5250  阅读(46)  评论(0)    收藏  举报