Python字典初识—Python取经之路

在python基础中我们总共接触的数据类型包括:

1.数字
2.字符串
3.布尔类型
4.列表
5.元组
6.字典

不可变数据类型:数字,字符串,元组
可变数据类型:列表,字典

字典的特点:无序、键唯一

  • 字典中元素是无序的,通过键查找值,键是python产生的一组哈希数,当查询值时,就是通过该哈希数查找到对应的值

回顾列表的创建方法:

    a=[1,2,3,"a","b","c"]
    b=list((1,2,3,"a","b","c"))

介绍字典的创建方法:

字典是由key和value组成,形如{key:value}
key值必须为可哈希的不可变类型如:数字、字符串、元组
value值可以为任何数据类型

1.变量对象={key:value,key:value,...}
dic1={'name':'wanik','age':22,'sex':'男'}
2.变量对象=dict( ( (key,value), ) )   这种方式下创建,如果只有一组键值对,需在后面添加","
dic2=dict( ( ('name','wanik'),('age',22),('sex','男') ) )
3.字典创建另一种方法:使用关键字dict.fromkeys()(深浅拷贝会用到)
dic6=dict.fromkeys(['name','age','sex'],'default')      #可用作字典的创建或者初始化
print (dic6)

字典的操作:

 # 增加

        dic1 = {'name': 'wanik', 'age': 22, 'sex': '男'}
        # 存在返回值,返回值为添加键对应的值
        re=dic1["hobby"]="篮球"     #若键不存在,则:字典[要添加的键]=对应值
        print(dic1)
        print(re)
        dic1['age']=15          #若要添加的键已存在,则覆盖掉其对应的值
        print(dic1)


        #使用setdefault(key,value)方法,中间用逗号隔开,存在返回值
        ret=dic1.setdefault('weight','57kg')    #若要添加的键不存在,则添加,且存在返回值,返回值为添加的value
        print(dic1)
        print(ret)
        #>>>输出结果:{'name': 'wanik', 'age': 15, 'sex': '男', 'hobby': '篮球', 'weight': '57kg'}
        #>>>57kg


        ret2=dic1.setdefault('age',10)       #键已存在,则不进行修改,其返回值为原有字典中键对应的值,而不是要添加的值
        print(dic1)
        print(ret2)
        #>>>输出结果:{'name': 'wanik', 'age': 15, 'sex': '男', 'hobby': '篮球', 'weight': '57kg'}
        #>>>输出结果:15
    #查询

        dic2 = {'name': 'wanik', 'age': 22, 'sex': '男'}
        print(dic2['name'])     #通过对应的键去取值

        #查询所有的键
        print(dic2.keys())
        print(type(dic2.keys()))        #返回值类型为 'dict_keys',可通过list转换为列表
        #查询所有的值
        print(dic2.values())
        #查询所有的键值对
        print(dic2.items())
    #修改

        dic3 = {'name': 'wanik', 'age': 22, 'sex': '男'}
        #通过键索引出该值,然后赋值修改
        dic3['name']='lisi'
        print(dic3)

        #使用update()方法,将一个字典添加至另一个字典中,类似列表中extend()方法

        dic4={'age':'15','hobby':'篮球'}
        dic3.update(dic4)
        print(dic3)             #进行update操作后,dic4中存在dic3中的键,则覆盖其对应的值,若不存在相同的键,则添加键值对
        print(dic4)
 #删除

        dic5={'name': 'wanik', 'age': 22, 'sex': '男'}

        del dic5['name']        #删除一组键值对
        print(dic5)
        #使用clear()方法
        dic5.clear()            #清空字典,但该字典依然存在,只是为空dic5={}
        print(dic5)
        #使用pop()方法,存在返回值
        ret=dic5.pop('name')        #使用pop方法删除键值对,并且返回值为删除的value
        print(ret)
        print(dic5)
        #使用popitem()方法,实现随机删除,存在返回值,返回值为随机删掉的键值对
        a=dic5.popitem()
        print(a,dic5)

        del dic5                #使用del 彻底删除字典,删除后字典不存在
        #print(dic5)   报错 : NameError: name 'dic5' is not defined
#其他操作
    #字典的嵌套
            dic7={'张三':{'age':23,'sex':'男'},
                  '李四':{'age':22,'sex':'女'},
                  'wanik':{'age':18,'sex':'男'}
                  }

            #修改字典中嵌套的数据,如将张三性别改为女
            dic7['张三']['sex']='女'
            print(dic7)
    #字典的遍历
            dic5={'name': 'wanik', 'age': 22, 'sex': '男'}
            #最快最方便的遍历
            for i in dic5:
                print(i,dic5[i])        # 最后打印的 i 是字典的键,dic5[i]位字典的值
            #另一种遍历(如果数据量较大,会影响性能)
            for i in dic5.items():    #dic5.items()是字典键值对组成的元组
                print(i)
                '''
                >>>打印结果:
                ('name', 'wanik')
                ('age', 22)
                ('sex', '男')
                '''
            for i,j in dic5.items():
                print (i,j)
                '''
                >>>打印结果:
                name wanik
                age 22
                sex 男
                '''
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值