Python_字典操作

字典的初识

列表:

  1. why:
    1. 列表可以存储大量数据、数据之间的关联性不强。
    2. 列表的查询速度比较慢。
    3. 列表:容器型数据类型(dict)。
  2. how:
    1. 数据类型的分类(可变和不可变):
      1. 可变(不可哈希)的数据类型:list、dict、set。
      2. 不可变(可哈希)的数据类型:str、bool、int、tuple。

字典:

  • {}括起来,以键值对形式存储的容器型数据类型。

    实例:

    dic = {'张三':
            {'name': '张三','age': '18', 'sex': '男'},
        '北京':
            ['朝阳区', '昌平区', '顺义区', '海淀区' ],
    
  • #字典创建方式:
    #方式一:
    
    dic = dict((('one', 1),('two', 2),('three', 3)))
    print(dic)
    
    #方式二
    
    dic = dict(one=1, tow=2, three=3)
    print(dic)
    
    #方式三
    dic = dict({'one': 1, 'tow': 2, 'three': 3})
    print(dic)
    
  1. 健:必须是不可变的数据类型:(int str)常用类型、(bool tuple几乎不用)唯一的。
  2. 值可以是任意数据类型,对象。
  3. 字典3.5x版本之前(包括3.5)是无序的。
  4. 字典3.6x会按照初次建立的字典的顺序排列,学术上不认为是有序的。
  5. 字典在3.7x版本以后都是有序的。
  6. 字典优点:查询速度非常快,存储关联性的数据
  7. 字典的缺点:以空间换时间。
  8. 键值对:
    1. 酒店
    2. 健:房间号:0-99
    3. 值:房间:里面存放什么数据都可以
#字典增删改查
#dic = {'name':'张三', 'age': 25, 'hobby_list': ['开车', '游戏', '旅游']}
#增:
'''
#直接增加:有则改之,无则增加
dic = {'naem':'张三', 'age': 25}
dic['sex'] = '男'
dic['age'] = '12'
#setdefault:有则不变,无则增加
#dic.setdefault('hobby') #不添加值默认为:None
dic.setdefault('hobby', '开车')
print(dic)
'''
#删:

'''
#pop:按照健删除键值对,有返回值,设置第二个参数则无论字典中有无此健都不会报错(常用)。
dic.pop('age')
ret = dic.pop('age')
ret = dic.pop('hobby','没有此健')
print(ret)
print(dic)

#clear :清空(非删除字典,而是清空该字典内容)

dic.clear()
print(dic)

#del 按照健去删除。如果没有要删除的健则报错。
del dic['age']
print(dic)
'''
#改
'''
dic['name'] = '李四'
print(dic)
'''

#查
'''
print(dic['hobby_list'])
print(dic['hobby_list1'])

#get: 如果没有该健存在返回None,可以自定义返回值。
l1 = dic.get('hobby_list')
l2 = dic.get('hobby_list1','没有此健')
print(l2)
'''
#字典嵌套
dic = {
    'name': '北京',
    'age':  2020,
    'wife': [{'name': '顺义','age': '2019'},],
    'chilaren': {'girl_furst': '朝阳区', 'girl_second': '海淀区', 'girl_three': '通州区' }
}

#1、获取北京的名字。
print(dic['name'])
print(dic.get('name'))
#2、获取这个字典({'name': '顺义','age': '2019'})。
print(dic['wife'][0])
#3、获取顺义的值。
l1 = (dic['wife'][0]['name'])
print(l1)
#4、获取通州区这个值
print(dic['chilaren']['girl_three'])
#练习
#dic = {'k1': 'v1', 'k2': 'v2', 'k3':[11,22,33]}
#1、请在字典中添加一个键值对,“k4”:v4,输出添加后的字典
#dic['k4'] = 'v4'
#dic.setdefault('k4','v4')
#print(dic)
#2、请在修改字典中“k1”对应的值为“666” 输出修改后的字典。
#dic['k1'] = '666'
#print(dic)
#3、请在k3对应的值中追加一个元素 777 ,输出修改后的字典。
#l1 = dic.get('k3')
#l1.append(777)
#dic.get('k3').append(777)
#print(dic)
#4、请在k3对应的额值滴第一个位置插入元素888 输出修好后的字典。
#dic.get('k3').insert(0,888)
#print(dic)
  • 总结:
    #字典:查询速度快,数据的关联性强。
    #健:不可变的数据类型,(str int),唯一。
    #值:任意数据类型,对象
    #字典的增删改查。
    #字典的嵌套。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值