python学习day5

1.dict数据字典

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

  不可变数据类型:元组,bool,int,str      可哈希

  可变数据类型:list,dict,set                  不可哈希

数据字典的 key 必须是不可变数据类型,可哈希 ;  value 是任意数据类型

优点:二分法快速查找;存储大量的关系型数据;

特点:无序的

2.dict的增

dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
dic1['high'] = 178  #没有当前键值对时,增加
dic1['age'] = 20    #有键值对时,覆盖值
dic1.setdefault('weight',150)
dic1.setdefault('name','haha')  #有键值对时,不作任何改变,没有才添加

3.dict的删

按key删除

dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
print(dic1.pop('大小','None'))  #没有返回值时,可设置返回值,不会报错
print(dic1)
print(dic1.pop('age'))         #有返回值时,返回对应返回值,按键删除
print(dic1)

随机删除

dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
print(dic1.popitem())   #随即删除键值对,3.6及以后版本因为有排序,会删掉最后一个,有返回值元组,为删除的键值
print(dic1)

其他删除

dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
del dic1['name']    #按key删除,没有key会报错
del dic1                #删除字典
print(dict1.clear())         #清空字典,返回空字典

4.dict的改

把一个字典中的键值对更新到另一个字典中(有相同的key则更新value,没有相同的key则增加键值对)

dic = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
dic2.update(dic)     
print(dic)    # dic 不变
print(dic2)   # dic 中的键值对更新到 dic2 中

5.dict的查

dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
print(dic1.keys())          #字典中的key,按照列表输出
print(dic1.values())        #字典中的value,按照列表输出
print(dic1.items())         #字典中的键值对,按照列表输出

 

dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
for i in dic1:                       #遍历出字典中的key
    print(i)
for i in dic1.values():          #遍历出字典中的value
    print(i)
for i in dic1.items():            #遍历出字典中的键值对
    print(i)
a,b = 1,2
a,b = b,a
print(a,b)

a,b = [1,2],[2,1]
print(b,a)

dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
for k,v in dic1.items():      #
    print(k,v)

按key 查询 value

dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
v1 = dic1['age']    #按key查询value,若key不存在,报错
print(v1)
v2 = dic1.get('aaa')   #按key查询value,若key不存在,返回None,可指定返回值: dict.get('aaa','没有该值')
print(v2)

6.dict的嵌套

dic1 = {
    'name':['小赵','xiaoqian','小孙'],
    'money':{
        'breakfast':8,  
        'lunch':20,
        },
    'number':3,
}
dic1['name'].append('小李')                  #在name的值中增加小李
dic1['name'][1] = dic1['name'][1].upper()   #将name的值的列表中第二个元素全部大写
dic1['money']['dinner'] = 15                #在money的值的字典中新增键值对
print(dic1)

6.回顾练习

用户输入一个字符串,整数部分相加,如123abc111def222 为 123+111+222
li = input('>>>')
num = 0
for i in li:
    if i.isalpha():
        li = li.replace(i,' ')
li = li.split(' ')
for i in li:
    if i.isdigit():
        num +=  int(i)
print(num)

 

posted @ 2021-02-26 21:43  暴躁的产品  阅读(39)  评论(0)    收藏  举报