3.字典-python3基础知识

3.字典-python3基础知识


字典是无序集合,通过键值对存取,异构,可嵌套,迭代对象。
一个键对应一个值,但是一个值可以对应多个键,所以字典可以看做一个映射表

创建

下面是几种创建字典{'name': 'yjx', 'age': 22, 'school': 'HIT'}的方法

  1. 直接创建

    D={'name': 'yjx', 'age': 22, 'school': 'HIT'}
    
  2. 逐步添加

    D={}
    D['name']='yjx';D['age']=22;D['school']='HIT'
    
  3. 键值对,用的比较多,但是key只能算是字符串

    D=dict(name='yjx',age=22,school='HIT')
    
  4. 其他dict方法

    只要是元组构成的列表就可以,zip返回对象就是如此
    D=dict(zip(['name','age','school'],['yjx',22,'HIT']))
    D=dict([('name','yjx'),('age',22),('school','HIT')])
    

操作,方法

获取所有Value值:D.values()返回对象是一个dict_values对象,可以直接转换为列表,包含D所有的value。
获取所有key值:D.keys()返回值是dict_keys对象
获取所有元素:D.item()返回值是dict_items对象,是键值对的元组组成的列表
访问:D[key]>value
修改:D[key] = newvalue如果没有key值则会添加新的键值对
删除:del D[key]删除指定key值的键值对D.clear()清空字典
复制:D.copy()顶层复制
合并字典:D.update(D2)以D为基字典合并操作,会遍历字典
通过key获取value:D.get(key[,default])如果key不存在则返回缺省值,默认是None
通过key删除元素:D.pop(key)会删除键值对,返回值为value;如果key不存在会报错。
删除一堆键值对:D.popitem()返回值为一个键值对元组,若字典为空则报错

遍历,推导式

假设D={'name': 'yjx', 'age': 22, 'school': 'HIT'}
遍历键:

for k in D:
    print(k,end=' ')
>>>name age school 
   
for k in D.keys():
    print(k,end=' ')
>>>name age school 

遍历值:

for v in D.values():
    print(v,end=' ')
>>>yjx 22 HIT 

或者遍历键,输出值
for k in D:
    print(D[k],end=' ')
>>>yjx 22 HIT 

键值一起遍历:

for k,v in D.items():
    print(k,v,end='|')
>>>name yjx|age 22|school HIT|

值得注意的是,字典没有自带的方法通过值来索引键,可以通过以下实现:
遍历+条件判断

D={'name': 'yjx', 'age': 22, 'school': 'HIT'}
print([k for k in D if D[k]==22])
>>>['age']

通过推导式来建立字典:
事实上,推导式在字典,列表都大大化简了我们的工作量

D={x:x**2 for x in range(3)}
print(D)
>>>{0: 0, 1: 1, 2: 4}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值