Python学习笔记:字典(dict)有关内容

字典是Python中唯一的映射类型。映射类型对象里哈希值(键:key),和指向的对象(值:value),是一对多的关系,也就是

字典的元素分为两个部分,分别是键和值,一个键对应一个值,键不能够重复,值可以重复。


1.创建字典。

(1).字典是用大括号({})来包含元素的,基本创建就是直接赋值,键不能是元组或者列表,但是值可以是。

>>> D = {'a':1,'b':2,'c':3}<span style="white-space:pre">	
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D = {'a':(1,2,3),'b':[1,2,3]}<span style="white-space:pre">	</span>#值为元组、列表
>>> D
{'a': (1, 2, 3), 'b': [1, 2, 3]}
>>> D = {[1,2]:1}<span style="white-space:pre">			</span>#键为列表,异常
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    D = {[1,2]:1}
TypeError: unhashable type: 'list'


(2).可以用dict() 函数来创建,函数中传入一个元组(或者列表),元组(或者列表)里面包含多个有着对应关系的元组(或者列表),函数就会自动创建成字典类型。

(格式:dict()  ()里面只要是能够表达对应关系的序列都可以)

>>> D = dict((['a',1],['b',2]))<span style="white-space:pre">			</span>#用元组,元组里面用列表来表达对应关系
>>> D
{'a': 1, 'b': 2}
>>> D = dict([('a',1),('b',2)])
>>> D
{'a': 1, 'b': 2}
>>> type(D)
<class 'dict'>

(3)可以用fromkeys() 函数来创建,函数里面两部分内容,一是键,二是值,键可以用字符串、元组、列表等包含起来,值只能是一个值,然后函数

会把这个值赋给所有的键,值不存在默认为None。(格式:{}.fromkeys(keys,value)  keys用序列包含起来,value 直接写上去就好)

>>> D = {}.fromkeys(('a','b'),2)<span style="white-space:pre">		</span>#元组包含键
>>> D
{'a': 2, 'b': 2}
>>> D = {}.fromkeys(['a','b'],1)<span style="white-space:pre">		</span>#列表包含键
>>> D
{'a': 1, 'b': 1}
>>> D = {}.fromkeys('abc',1)<span style="white-space:pre">			</span>#字符串包含键
>>> D
{'a': 1, 'b': 1, 'c': 1}
>>> D = {}.fromkeys('a')<span style="white-space:pre">			</span>#值默认为None
>>> D
{'a': None}


2.访问字典。

因为字典是映射关系,所以不存在索引值,想要访问的话只能够通过键来实现,通过键来找到键所对应的值,不能通过值找键,就是一对一的格式。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D['a']
1
>>> D['b']
2
>>> D['c']
3


有个比较容易混乱的,下面看起来像是用索引值来访问了,但是却不是这样的,此时1,2,3代表的是键!!!
>>> D = {1:'a',2:'b',3:'c'}
>>> D
{1: 'a', 2: 'b', 3: 'c'}
>>> D[1]
'a'
>>> D[2]
'b'
>>> D[3]
'c'


3.删除字典。


单个删除字典元素。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> del D['a']
>>> D
{'b': 2, 'c': 3}


整个删除字典。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> del D
>>> D
Traceback (most recent call last):
  File "<pyshell#66>", line 1, in <module>
    D
NameError: name 'D' is not defined

清空字典的内容,让字典成为空字典。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.clear()
>>> D
{}


4.更新字典。


字典是可改变的,就如列表一样。


改变字典的值。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D['a']
1
>>> D['a'] = 4
>>> D
{'a': 4, 'b': 2, 'c': 3}

如果改变字典的值时,该键不存在就会在字典中新加入该键和值。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D['d'] = 4
>>> D
{'d': 4, 'a': 1, 'b': 2, 'c': 3}
>>> D['e'] = 0
>>> D
{'d': 4, 'a': 1, 'e': 0, 'b': 2, 'c': 3}

5.有关函数。

len()

计算字典 键-值 个数。

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> len(D)
3

get()

get() 函数对字典dict中的键key,返回它所对应的值value,如果该键不存在字典中,则返回default的值,default默认为None(格式:dict.get(key,default=None)

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.get('a')
1
>>> D.get('e')
>>> D.get('e',10)
10
>>> D

items()

items() 函数返回一个包含字典中键、值对元组的列表。(格式:dict.items()

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.items()
dict_items([('a', 1), ('b', 2), ('c', 3)])

keys()

keys() 函数返回一个包含字典中键的列表。(格式:dict.keys()

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.keys()
dict_keys(['a', 'b', 'c'])

values()

values() 函数返回一个包含字典中所有值的列表。(格式:dict.values()

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.values()
dict_values([1, 2, 3])

pop()

pop() 函数删除字典中key以及对应的值,并返回,如果key不存在则返回default的值,如果default没指定值,则会异常。(格式:dict.pop(key,default)

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.pop('a')
1
>>> D
{'b': 2, 'c': 3}
>>> D.pop('e',1)
1
>>> D.pop('f')
Traceback (most recent call last):
  File "<pyshell#116>", line 1, in <module>
    D.pop('f')
KeyError: 'f'

popitem()

popitem() 函数随机删除并返回字典中一对键值。(格式:dict.popitems()

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.popitem()
('a', 1)

setdefault()

setdefault() 函数查找字典dict中的键key,返回它所对应的值value,如果该键不存在字典中,则返回default的值并且在字典中新增该键值,default默认为None。

(格式:dict.setdefault(key,default=None)

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.setdefault('a')
1
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D.setdefault('e')
>>> D
{'a': 1, 'e': None, 'b': 2, 'c': 3}
>>> D.setdefault('f',5)
5

update()

update() 函数将dict2的键值添加到原字典dict 中,如果有相同的键,则以dict2的为准。(格式:dict.update(dict2)

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D1 = {'a':4,'e':5}
>>> D1
{'a': 4, 'e': 5}
>>> D.update(D1)
>>> D
{'a': 4, 'e': 5, 'b': 2, 'c': 3}

copy()

copy() 函数复制dict的内容。(格式:dict.copy()

>>> D = {'a':1,'b':2,'c':3}
>>> D
{'a': 1, 'b': 2, 'c': 3}
>>> D1 = D.copy()
>>> D1
{'a': 1, 'b': 2, 'c': 3}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值