字典类型
=基本使用=
1、用途:按照属性存放多个值2、定义方式:在{}内用逗号分隔开多个key:value
其中value可以是任意类型
而key必须是不可变的类型,通常为字符串类型,并且key不能重复
#列表为不可变类型所以报错
>>> d = {111:"xxx",3.1:"yyy",[1,2,3]:"zzz"}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
#key不可重复,否则会覆盖
>>> d = {'k1':'qqq','k1':'www'}
>>> print(d)
{'k1': 'www'}
dict = {'name':'xiaoyunwei','age':'23'} #dic = dict(....)
#数据类型转换
>>> t = [('name','xiaoyunwei'),('age',23)]
>>> res = dict(t)
>>> print(res)
{'name': 'xiaoyunwei', 'age': 23}
>>> res = dict(a=1,b=2,c=3)
>>> print(res)
{'a': 1, 'b': 2, 'c': 3}
#fromkeys(批量生成key)
>>> keys = ['name','age','gender']
>>> re = {}.fromkeys(keys,None)
>>> print(re)
{'name': None, 'age': None, 'gender': None}
3、常用操作+内置方法
# 1、按key存取值:可存可取
#取值
dict = {'name':'xiaoyunwei','age':'23'}
print(dict['name'])
#get判断key值是否存在(通常引用别人的程序的时候用get)
res = dict.get('name')
pring(res)
#存值(key不存在新蹭,存在则改值)
>>> dict['gender'] = 'woman'
>>> print(dict)
{'name': 'xiaoyunwei', 'age': '23', 'gender': 'woman'}
# 2、长度len
>>> print(len(dict))
3
# 3、成员运算in 和not in
>>> print('name' in dict)
True
>>> print('worker' in dict)
False
# 4、删除
#方式一:
>>> del dict['name']
>>> print(dict)
{'age': '23', 'gender': 'woman'}
#方式二:pop指定key删除,返回删除的value
>>> dict = {'name':'xiaoyunwei','age':'23'}
>>> res = dict.pop('name')
>>> print(res)
xiaoyunwei
#方式三:popitem
>>> dict = {'name':'xiaoyunwei','age':'23'}
>>> res = dict.popitem()
>>> print(res)
('age', '23')
# 5、键keys(),值values(),键值对items()---主要是服务循环
>>> dict.keys()
dict_keys(['name', 'age'])
>>> dict.values()
dict_values(['xiaoyunwei', '23'])
>>> dict.items()
dict_items([('name', 'xiaoyunwei'), ('age', '23')])
>>>
# 6、循环
dict = {'name':'xiaoyunwei','age':'23'}
for k in dict.keys():
print(k)
name
age
dict = {'name':'xiaoyunwei','age':'23'}
for v in dict.values():
print(v)
xiaoyunwei
23
dict = {'name':'xiaoyunwei','age':'23'}
for k,v in dict.items():
print(k,v)
name xiaoyunwei
age 23
3.1 需要掌握
#update()
dic = {'k1':111,'k2':2222}
dic.update({'k2':444,'k3':555})
print(dic)
{'k1': 111, 'k2': 444, 'k3': 555}
#setdefault()
dic = {'age':23}
res = dic.setdefault('name','xiaoyunwei')
print(dic)
{'age': 23,'name': 'xiaoyunwei'}
=该类型总结=
存多个值无序
可变(1、可变:值变,id不变。可变=不可bash 2、不可变:值变,id就变。不可变=可bash)