字典类型内置方法

字典类型内置方法

一、字典(dict)

存多个值,但每一个值都有一个key与之对应。例如存的值有姓名:jiayi、年龄:18、身高:173

1.2 定义方式

在{}内用逗号分隔多个元素,每个元素都是key:value的形式,value可以是任意数据类型,key通常是字符串类型,但是key必须为不可变类型。

dic ={'name':jiayi,'age':20,'height':173}
print(f"dic:{dic}")
--------------------------------------------------------
dic:{'name': 'jiayi', 'age': 20, 'height': 173}

1.3 内置方法

1.3.1优先掌握

1.按key存取值

dic ={'name':'jiayi','age':20,'height':173}
print(f"dic['name']:{dic['name']}")   #可取
dic['age'] = 18   #可修改
print(f"dic:{dic})
---------------------------------------------------------
dic['name']:jiayi
dic:{'name': 'jiayi', 'age': 18, 'height': 173}

2.长度

dic ={'name':'jiayi','age':20,'height':173}
print(f"len(dic):{len(dic)}")
-----------------------------------------------------
len(dic):3

4.in和not in

dic ={'name':'jiayi','age':20,'height':173}
print(f"name in dic:{'name'in dic}")
print(f"name not in dic:{'name' not in dic}")
---------------------------------------------------------
name in dic:False
name not in dic:True

5.for循环

#dic是无序的,但是python3采用了底层优化算法,所以看起来是有序的,但是在python2中的字典是无序的
dic ={'name':'jiayi','age':20,'height':173}
for i in dic.items:   #items可以换成keys(),values()
    print(i)
------------------------------------------------------
('name', 'jiayi')
('age', 20)
('height', 173)

7.删除:del()/pop()/popitem

(1)del()

dic ={'name':'jiayi','age':20,'height':173}
del dic['name']
print(f"dic.get('a'):{dic.get('name')}")
---------------------------------------------------------
dic.get('a'):None

(2)pop()

dic ={'name':'jiayi','age':20,'height':173}
dic.pop('name')   #指定元素删除
print(f"dic.pop('age'):{dic.pop('age')}")
print(f"dic.get('age'):{dic.get('age')}")
---------------------------------------------------------
dic.pop('age'):20
dic.get('age'):None

(3)popitem

dic ={'name':'jiayi','age':20,'height':173}
print(f"dic.popitem('age'):{dic.popitem()}")   #随机返回并删除字典中的一对键和值(一般删除末尾对)
-----------------------------------------------------------
dic.popitem('age'):('height', 173)

8.键keys()、值values()、键值对items()

dic ={'name':'jiayi','age':20,'height':173}
print(f"dic.keys():{dic.keys()}")
print(f"dic.values():{dic.values()}")
print(f"dic.items():{dic.items()}")   #一般和解压缩一起使用
------------------------------------------------------------
dic.keys():dict_keys(['name', 'age', 'height'])
dic.values():dict_values(['jiayi', 20, 173])
dic.items():dict_items([('name', 'jiayi'), ('age', 20), ('height', 173)])

1.3.需要掌握

1.get()

dic ={'name':'jiayi','age':20,'height':173}
print(f"dic.get():{dic.get('name')}")   #如果有就返回真的值
print(f"dic.get():{dic.get('hobby')}")
print(f"dic.get():{dic.get('hobby','nick')}")  #如果有就返回真的值,也可以设置返回的值
----------------------------------------------------
dic.get():jiayi
dic.get():None
dic.get():nick

2.update()

dic ={'name':'jiayi','age':20,'height':173}
dic2 = {'hobby':'run'}
dic.update(dic2)
print(f"dic.get():{dic}")
-------------------------------------------------------
dic.get():{'name': 'jiayi', 'age': 20, 'height': 173, 'hobby': 'run'}

3.fromkeys()

dic=dict.fromkeys(['name','age','height'],None)   #fromkeys由dict,key来自于容器,值来自于后面定义的value
print(f"dic:{dic}")
---------------------------------------------------------
dic:{'name': None, 'age': None, 'height': None}

4.setdefault()

# 有指定key不会改变值;无指定key则改变值
dic ={'name':'jiayi','age':20,'height':173}
print(f"dic.setdefault(name):{dic.setdefault('name')}")
print(f"dic:{dic}")
print(f"dic.setdefault(hobby):{dic.setdefault('hobby','run')}")
print(f"dic:{dic}")
---------------------------------------------------------
dic.setdefault(name):jiayi
dic:{'name': 'jiayi', 'age': 20, 'height': 173}
dic.setdefault(hobby):run
dic:{'name': 'jiayi', 'age': 20, 'height': 173, 'hobby': 'run'}

1.4 有一个值还是多个值

多个值

1.5 有序(索引)or无序(索引)

无序

1.6 可变or不可变

可变

dic ={'name':'jiayi','age':20,'height':173}
print(f"dic:{id(dic)}")
dic['name'] = 'yanjiayi'
print(f"dic:{id(dic)}")
-------------------------------------------------------------
dic:2213073478280
dic:2213073478280
posted @ 2019-08-05 15:06  JIAYIYAN  阅读(168)  评论(0编辑  收藏  举报