python字典

字典定义

字典是python语言中唯一的映射类型。这种映射类型由(key)和(value)组成,是“键值对”的无序可变序列
定义字典时,每个元组的键和值用冒号隔开,相邻元素用逗号分隔,所有的元组放在一对大括号“ { ”和“ } ”中。字典中的键可以是python中任意不可变类型,例如:整数/实数/复数/字符串/元组等。键不能重复,而值可以重复一个键只能对应一个值,但多个键可以对应相同的值。例如:

{1001:'alice',1002'tom',1003:'emlily'}
{(1,2,3):'a',65.5,'b'}
{'alice':95,'beth':82,'tom':65.5,'emliy':95}

创建字典

  1. 使用 ‘ = ’ 将一个字典赋给一个变量即可创建一个字典变量。
>>> a={'alice':95,'beth':82,'tom':65.5,'emliy':95}
>>> a
{'alice': 95, 'beth': 82, 'tom': 65.5, 'emliy': 95}

也可以创建空字典

>>> a={}
>>> a
{}
  1. 使用内建dict()函数,通过其他映射(例如其他字典)或者键值对方式建立字典。
    例如:
    映射函数的方式建立字典,zip函数返回tuple列表
>>> a=dict(zip(['one','two','three'],[1,2,3]))
>>> a
{'one': 1, 'two': 2, 'three': 3}

1.以键值对创建字典

>>> b=dict(one=1,two=2,three=3)
>>> b
{'one': 1, 'two': 2, 'three': 3}

2.以键值对形式的列表建立字典

>>> c=dict([('one',1),('two',2),('three',3)])
>>> c
{'one': 1, 'two': 2, 'three': 3}

3.以键值对形式的元组创建字典

>>> d=dict((('one',1),('two',2),('three',3)))
>>> d
{'one': 1, 'two': 2, 'three': 3}

4.创建空字典

>>> e=dict()
>>> e
{}

5.dict.fromkeys(对象(,可选初值))方法创建列表
对象为可迭代对象;
如果不填写初值,则默认None;

>>> d=dict.fromkeys("first")
>>> d
{'f': None, 'i': None, 'r': None, 's': None, 't': None}
>>> d['f']=100
>>> d['s']=101
>>> d
{'f': 100, 'i': None, 'r': None, 's': 101, 't': None}
>>> f=dict.fromkeys("first",100)#初值100
>>> f
{'f': 100, 'i': 100, 'r': 100, 's': 100, 't': 100}

字典的读取

(1) 与列表和元组类似,可以使用下标的方法来访问字典中的元素。字典的下标是,若使用的键不存在,则提示异常错误。例如:

>>> a={'alice':95,'beth':82,'tom':65.5,'emliy':95}
>>> a[tom]
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    a[tom]
NameError: name 'tom' is not defined
>>> a['tom']
65.5

(2)使用字典对象的get()方法获取指定“ 键 ”对应的“ 值 ”。get()方法的一般形式为:dict.get(key,default=None)
其中:key是指在字典中要查询的“ ”,default是指指定的“ 键 ”值不存在时返回的值。该方法相当于一条ifelse…语句,如果参数key在字典中则返回key对应的value值,字典将返回dict[key];如果参数key不在字典中则返回参数default;如果没有指定default,默认值为None。例如:

>>> a['tom']
65.5
>>> a.get('alice')
95
>>> a.get('al','address')
'address'
>>> a.get('al')
>>> print(a.get('al'))
None

字典的添加与修改

(1)字典没有预定义大小的限制,可以随时向字典添加新的键值对,或者修改现有键所关联的值。添加和修改的方法相同,都是使用“字典变量名[键名]=键值”的形式。区分究竟是添加还是修改,需要看键名与字典中的键名是否有重复,若该“键”存在,则表示修改该“键”的值;若不存在,则表示添加一个新的“键值对”,也就是添加一个新的元素。例如:

>>> a['brth']=79     #添加
>>> a
{'alice': 95, 'beth': 82, 'tom': 65.5, 'emliy': 95, 'brth': 79}
>>> a['beth']=79    #修改
>>> a
{'alice': 95, 'beth': 79, 'tom': 65.5, 'emliy': 95, 'brth': 79}

(2)使用update()方法将另一个字典的“键值对”一次性全部添加到当前字典对象。如果当前字典中存在着相同的“键”,则以另一个字典中的“值”为准对当前字典进行更新。例如:

>>> a
{'alice': 95, 'beth': 79, 'tom': 65.5, 'emliy': 95, 'brth': 79}
>>> b={'eric':98,'tom':82}
>>> a.update(b)
>>> a
{'alice': 95, 'beth': 79, 'tom': 82, 'emliy': 95, 'brth': 79, 'eric': 98}

删除字典中的元素

(1)使用del命令删除字典中指定”对应的元素。例如:

>>> a
{'alice': 95, 'beth': 79, 'tom': 82, 'emliy': 95, 'brth': 79, 'eric': 98}
>>> del a['beth']
>>> a
{'alice': 95, 'tom': 82, 'emliy': 95, 'brth': 79, 'eric': 98}

(2)使用字典对象的pop()方法删除并返回指定“”的元素。例如:

>>> a
{'alice': 95, 'tom': 82, 'emliy': 95, 'brth': 79, 'eric': 98}
>>> a.pop('alice')
95
>>> a
{'tom': 82, 'emliy': 95, 'brth': 79, 'eric': 98}

(3)使用字典对象的popitem()方法删除字典元素。由于字典是无序的popitem()实际删除的是一个随机的元素。例如:

>>> a
{'tom': 82, 'emliy': 95, 'brth': 79, 'eric': 98}
>>> a.popitem()
('eric', 98)
>>> a
{'tom': 82, 'emliy': 95, 'brth': 79}

(4)使用字典对象的clear()方法删除字典的所有元素。例如:

>>> a
{'tom': 82, 'emliy': 95, 'brth': 79}
>>> a.clear()
>>> a
{}

删除字典

使用del命令删除字典。例如:

>>> a
{}
>>> del a
>>> a
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    a
NameError: name 'a' is not defined

字典的遍历

  1. 遍历字典的关键字
    使用字典的keys()方法,以列表的方式返回字典的所有的“键”。
    例:
>>> a={'alice':95,'beth':82,'tom':65.5,'emliy':95}
>>> a.keys()
dict_keys(['alice', 'beth', 'tom', 'emliy'])
  1. 遍历字典的值
    使用字典的values()方法,以列表的方式返回字典的所有“值”。
    例:
>>> a.values()
dict_values([95, 82, 65.5, 95])
  1. 遍历字典元素
    使用字典的items()方法,以列表的方式返回字典的所有元素(键/值)。
    例:
>>> a.items()
dict_items([('alice', 95), ('beth', 82), ('tom', 65.5), ('emliy', 95)])

字典的嵌套

>>> d={'one':{'sum':100,'stu':20},'two':{"sum":120,'stu':33}}
>>> d['one']
{'sum': 100, 'stu': 20}
>>> d['one']['sum']
100
>>> d['two']['stu']
33
>>> d={'one':[100,20],'two':[120,33]}
>>> d['one'][1]
20

字典推导式

>>> d={'f': 100, 'i': 12, 'r': 10, 's': 50, 't': 110}
>>> b={v:k for k,v in d.items()}
>>> b
{100: 'f', 12: 'i', 10: 'r', 50: 's', 110: 't'}
>>> b={v:k for k,v in d.items() if v>100}
>>> b
{110: 't'}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值