字典dict
一:字典dict
数据类型划分:可变数据类型,不可变数据类型
不可变数据类型:int str 元组 bool (又叫做:可哈希)
可变数据类型:list dict set (又叫做:不可哈希)
dict的key必须是不可变数据类型,values:任意数据类型
字典dict的优点:二分查找,存储大量关系型数据
特点:无序的
建立字典:
dic = {'name':['x','y'],
'py9':[{'number':99,
'age':20}],
'true':1,
(1,2,3):'lili',
2:'张三'}
字典的增删改查:
dic1 = {'age':18,'name':'wang','sex':'male'}
①增:直接添加:dic1[ ‘high’] = 186
若原字典中有high键,则值被覆盖,若没有,就增加high到字典中
dic1.setdefault('weight':130)
dic1.setdefault('name':'三枚')
原字典有‘name’,但不做任何改变
②删:
dic1.pop('name')删除'name':'wang',有返回值wang
dic1.pop('hobby')没有此键,会报错
dic1.pop('hobby',none)返回none,表示无此键,可设置返回值
dic1.popitem()随机删除,有返回值,返回的是元组形式的键值
dic1.clear()清空字典
del dic1['name']删除,若没有会报错
③改:
直接改;dic1[‘age’]=20
update;
dic2 = {'name':'大王','weight':160}
dic2.update(dic1)
结果:{'name':'wang','weight':160,'age':18,'sex':'male'}
Dic2被覆盖,添加没有的,覆盖有的
④查:
dic1.keys()查键 dic1.values()查键值 dic1.items()查键值对
for i in dic1 和 for i in dic1.keys()查的结果一样,都是打印键
面试题:
用一句话交换a,b的值。a=1,b=2
a,b = b,a 结果:a=2,b=1
补:
a,b = [1,2] 结果:a=1,b=2 a,b =[1,2],[3,4]结果:a =[1,2] b=[3,4] a,b=(1,2) 结果:a=1,b=2
for i in dic1.items():
print(i)
结果:('age',18)
for k,v in dic1.items():
print(k,v)
结果:age 18
dic1['name'] 结果:name的键值,但若没有会报错
dic1.get('name')结果:键值,但若没有返回None,也可以自己设置返回值
题:输入一个字符串和数字,判断有几个数字
info = input('<<<').strip()
for i in info:
if i.isalpha():
info = info.replace(i,' ')
a = info.split()
print(len(a))

浙公网安备 33010602011771号