Python基础---字典

1.字典定义

数据类型分为可变类型和不可变类型

类型相关数据类型s是否哈希
可变类型list 、dict 、set不可哈希
不可变类型str 、tuple(元组)、 bool 、int可哈希

字典(dict)是一种key value 无序的数据类型:
key 必须是不可变得数据类型 一般字符即可
value 可以任何种数据类型

2.字典相关操作

  • 取值

    #取值有dict['key']、dict.get("key"),dict.setdault('key')三中方法
    
    dict={
        'name':'xiaojing',
        'sex':'boy',
        'hobby': ['girl', 'movie', 'cycling'],
    }
    print(dict['hobby'])# ['girl', 'movie', 'cycling']
    print(dict['hobby'][0])#girl
    print(dict['name'])#xiaojing
    print(dict['name1'])#不存在该key会报错
    name=dict.get("name1",'false')#默认找不到会返回None,可以修改返回值,此处改为false
    print(name) #false
    
    
    dict={
        'name':'xiaojing',
    }
    print(dict.setdefault('name','LaoWang'))  #xiaojing
    print(dict.setdefault('name1','LaoWang'))  #LaoWang
    print(dict) #{'name': 'xiaojing', 'name1': 'LaoWang'}
    #setdefault获取不存在的键值时会往字典添加改键
    
  • 增加

    #增加有直接键值对增加、dict.setdefault(key,value)
    
    dict={
        'name':'xiaojing',
        'sex':'boy',
        'email':'xx@qq.com'
    }
    
    dict['telephone']='15099818848' #没有该键则创建该键值对
    dict['sex']='girl'  #已存在该键值对则覆盖
    print(dict)#{'name': 'xiaojing', 'sex': 'girl', 'email': 'xx@qq.com', 'telephone': '15099818848'}
    
    dict.setdefault('email','33@qq.com')#setdefault如果key已经存在则不修改该值
    print(dict['email'])#xx@qq.com
    
  • 删除

    dict={
        'name':'xiaojing',
        'sex':'boy',
        'email':'xx@qq.com'
    }
    ret=dict.pop('sex1','false')
    if ret=='false':
        print('没有此键,返回值为:'+ret)
    else:print(ret)
        
    #pop(key,None) 删除成功则返回value,失败则返回None,None可以省略也可以修改,如上面改为'false'
    
  • 更新

    #更新cookie时用到
    
    dict={
        'name':'xiaojing',
        'sex':'boy'
    }
    dict1={
        'sex':'girl',
        'email':'xx@qq.com'
    }
    dict.update(dict1)
    print(dict)#{'name': 'xiaojing', 'sex': 'girl', 'email': 'xx@qq.com'}
    
    #dict1.update(dict2)用dict2去更新dict1,存在相同key值时则更新value值,不存在key时则创建
    
  • 查找

    #dict.keys()     dict.values()     dict.items()   
    
    dict={
        'name':'xiaojing',
        'sex':'boy'
    }
    
    print(dict.keys())#dict_keys(['name', 'sex']) 返回列表对象
    print(dict.values())#dict_values(['xiaojing', 'boy']) 返回列表对象
    print(dict.items())#dict_items([('name', 'xiaojing'), ('sex', 'boy')]) 返回以元组为元素的列表对象
    
    for key in dict.keys():
        print(key)#name  sex
    for key,value in dict.items():
        print(key,value)  #name xiaojing      sex boy
    
  • 字典嵌套

    dict={
        'studentID':'201641402319',
        'msg':{
            'name':'xiao jing',
            'age':23,
            'sex':'boy'
        }
    }
    
    name=dict.get('msg').get('name').title()  #先找到内容,再进行操作
    print(name)#Xiao Jing
    
  • 分别赋值

    a=1
    b=2
    a,b=b,a   #一行代码同时交换a b的值
    print(a,b)#2 1
    
    a,b=['c','d'],['e','f']
    print(a,b)  #['c', 'd'] ['e', 'f']
    a,b=(1,2)   #分别赋值,自动识别右边最小元素,然后分别赋值
    print(a,b)#1 2
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值