字典dict

一:字典dict

数据类型划分:可变数据类型,不可变数据类型

不可变数据类型:int  str  元组  bool  (又叫做:可哈希)

可变数据类型:list  dict   set   (又叫做:不可哈希)

dictkey必须是不可变数据类型,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))

  

posted @ 2019-03-01 16:21  红领巾***  阅读(192)  评论(0编辑  收藏  举报