python基础-字典

本文详细介绍了Python字典的格式、创建、查看、修改、删除元素等操作,包括get、setdefault、update等方法,以及遍历字典的各种方式。此外,还强调了字典键的哈希特性及不可变性。

字典

格式

{‘键1’:’值1’,…,’键n’:’值n’}

可以存储多种类型的值

操作

创建

  • a={}
  • a={键值对1,键值对2…}
  • a=dict(赋值语句,赋值语句2…)
  • a=dict()
  • a = dict(zip([‘one’, ‘two’, ‘three’], [1, 2, 3]))
  • a = dict([(‘two’, 2), (‘one’, 1), (‘three’, 3)])
  • a = dict({‘three’: 3, ‘one’: 1, ‘two’: 2})
  • a = dict.fromkeys([’s’, ‘d’], 8) # 类方法

查看元素

  • 键找值
    • a[键]
    • 没有键的时候抛异常
  • get
    • 字典对象.get(键[,默认值])
    • 获取指定键的值,没有找到不会抛异常,也可以设置默认值

修改元素

a[key]

格式同修改,也是赋值语句,但是在没有查到该元素的情况下就会自动将该键值对添加

setdefault(key[, default])

如果key存在,那么返回对应的value

如果不存在,创建给键值对,赋值默认值为value,并返回该默认值

d.update(d_other)

合并字典,如果存在相同的键值,d_other的数据会覆盖掉D的数据,返回None

删除元素

del

格式:del 字典对象[键]

删除字典中特定元素

clear

格式:字典对象.clear()

清空整个字典

pop

格式:字典对象.pop(key[,default])

如果key在字典中,移除该键值对,并返回设置的默认值

如果key不存在,并且默认值没有给,那么抛出KeyError错误

popitem()

随机返回并删除字典中的一对键和值(项)。为什么是随机删除呢?因为字典是无序的,没有所谓的“最后一项”或是其它顺序。在工作时如果遇到需要逐一删除项的工作,用popitem()方法效率很高

其他

d[key]

字典对象[“key”]

如果key存在,则返回对应value,如果不存在,抛出KeyError的错误

如果dict的子类重写了__missing__方法,当key不存在的时候,默认会将这个key值传入该方法,调用该方法管理当key不存在时的情况。

class Counter(dict):  # 继承dict
    def __missing__(self,key):  # 重写missing方法
        """在d[key]的时候,如果key不存在就会将对应的key输入值传入"""
        return 0
c = Counter()
c['red']  # 返回0
c['red'] += 1
c['red']  # 返回1
len()

len(字典对象)

测量字典中,键值对个数

keys()

字典对象.keys()

返回字典对象所有键组成的列表

values()

字典对象.values()

返回字典中所有值组成的列表

items()

字典对象.items()

返回一个所有由键值对组成的元组的列表

key in d

键 in 字典对象

如果该键存在,就返回True,否则,返回False

key not in d

和上面相反,不再赘述

iter(d)/iter(d.keys)

iter(字典对象)/iter(字典对象.keys)

返回字典key组成的生成器

copy()

返回一个浅拷贝对象

遍历

遍历键组成的列表,然后根据每个键获取值

元素

遍历通过items()获取键值对组成的元组

键值对

遍历通过items()获取的键值对元组的时候,直接使用两个k,v变量接收

for key,value in dict.items():
    使用key,value的代码

(key中存储的是键,value中存储的是值)

扩展(enumerate())

用于将一个可遍历的数据对象组合成一个索引序列,同时列出数据和数据下标,一般用在for循环中。

 chars=['a','b','c']
for i,chr in enumerate(chars):
    使用下边i和元素chr的代码

注意点

可变类型不能作为字典的键,因为字典的键需要进行哈希计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值