python-dict字典

字典定义与使用

  • 字典是无序的键值对集合
  • 字典用大括号{}包围
  • 每个键/值对之间用一个逗号分隔
  • 各个键与值之间用一个冒号分隔
  • 字典是动态的

 字典使用:创建

  •  使用大括号填充键值对
    • sqr = {'name':'shaoqiran','gender':'male','age':'25'}
      print(sqr,type(sqr))
      
      运行结果是:
      {'name': 'shaoqiran', 'gender': 'male', 'age': '25'} <class 'dict'>
  • 通过构造方法dict()
    • sqr1 = dict([('name','shaoqiran'),('gender','male'),('age',25)])
      print(sqr,type(sqr1))
      
      运行结果是:
      {'name': 'shaoqiran', 'gender': 'male', 'age': '25'} <class 'dict'>
  • 通过字典推导式
    • sqr2 = {k:v for k,v in [('name','shaoqiran'),('gender','male'),('age',25)]}
      
      运行结果是:{'name': 'shaoqiran', 'gender': 'male', 'age': '25'} <class 'dict'>

字典使用:访问元素

print('访问键存在的集合',sqr['name'])#选择要访问的对象的键
print('访问键不存在的集合',sqr['happy'])

运行结果是:
访问键存在的集合 shaoqiran
Traceback (most recent call last):
  File "E:\pythonProject\main.py", line 112, in <module>
    print('访问键不存在的集合',sqr['happy'])
                      ~~~^^^^^^^^^
KeyError: 'happy'

字典使用:操作元素

  • 语法:dict[key] = value
  • 添加元素
    • 键不存在
  • 修改元素
    • 键已存在
sqr2 = {k:v for k,v in [('name','shaoqiran'),('gender','male'),('age',25)]}
sqr2['degree'] = 'daxue'
print('增加一个学位:',sqr2['degree'])
sqr2['degree'] = 'yanjiusheng'
print('修改一个学位:',sqr2['degree'])

字典使用:嵌套字典

  • 嵌套字典
  • 字典的值可以是字典对象
sqr2['grade'] = {'math':80,'englist':90}
print(sqr2)
sqr2['grade']['math'] = 70
print('修改数学课的成绩为的字典为:',sqr2)

运行结果是:
{'name': 'shaoqiran', 'gender': 'male', 'age': 25, 'degree': 'yanjiusheng', 'grade': {'math': 80, 'englist': 90}}
修改数学课的成绩为的字典为: {'name': 'shaoqiran', 'gender': 'male', 'age': 25, 'degree': 'yanjiusheng', 'grade': {'math': 70, 'englist': 90}}

字典常用方法

  • keys()//获取所有的键
print(sqr2.keys())
运行结果是:dict_keys(['name', 'gender', 'age', 'degree', 'grade'])
  • values()//获取所有的值
print(sqr2.values())

运行结果是个:dict_values(['shaoqiran', 'male', 25, 'yanjiusheng', {'math': 70, 'englist': 90}])
  • items()//获取所有的键值对
print(sqr2.items())
运行结果是:dict_items([('name', 'shaoqiran'), ('gender', 'male'), ('age', 25), ('degree', 'yanjiusheng'), ('grade', {'math': 70, 'englist': 90})])
  • get()//获取某个键的值
    • 获取到指定key关联的value的值
    • 入参
      • key:字典的键,必传
    • 返回
      • 如果key存在于字典中,返回key关联的value值
      • 如果key不存在,则返回None
    • tips:此方法的好处就是无需担心key是都存在,永远都不会引发KeyError错误
  • print(sqr2.get('grade'))
    print(sqr2.get('school'))
    
    运行结果是:
    {'math': 70, 'englist': 90}
    None
  • update()//更新字典
    • update(dict)
    • 使用来自dict的键/值对更新字典,覆盖原有的键和值
    • 入参
      • dc:字典对象,必穿
    • 返回:None
sqr2.update({'name':'lmq'})
print(sqr2)

运行结果是:{'name': 'lmq', 'gender': 'male', 'age': 25, 'degree': 'yanjiusheng', 'grade': {'math': 70, 'englist': 90}}

data = {'age':20,'hobby':'girl'}
sqr2.update(data)
print(sqr2)

运行结果是:
{'name': 'lmq', 'gender': 'male', 'age': 20, 'degree': 'yanjiusheng', 'grade': {'math': 70, 'englist': 90}, 'hobby': 'girl'}
  • pop()//用来删除某个键值对
    • 删除指定key的键值对,并返回对应value
    • 入参:
      • key:必传
    • 返回:
      • 如果key存在于字典中,则将其移除并返回value值
      • 如果key不存在于字典中,则会引发KeyError
  • sqr2.pop('age')//将age这个键值对删除
    print(sqr2)

字典推导式

  • 字典推导式:可以从任意以键值对作为元素的可迭代对象中构建字典

实例

给定一个字典对象{‘a’:1,'b':2,'c':3},找出其中所有大于1的键值对,同时value值进行平方运算

dic1 = {'a':1,'b':2,'c':3}
dic2 = {k : v ** 2for k,v in dic1.items() if v > 1}
print(dic2)

运行结果是
{'b': 4, 'c': 9}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值