Python学习——字典dict

key-value键值对的数据的集合
可变的、无序的、key不重复

字典dict定义初始化

d = dict() 或者 d = {}
dict(**kwargs) 使用name=value对初始化一个字典
dict(iterable, **kwarg) 使用可迭代对象和name=value对构造字典,不过可迭代对象的元素必须是 一个二元结构
d = dict(((1,‘a’),(2,‘b’))) 或者 d = dict(([1,‘a’],[2,‘b’]))
dict(mapping, **kwarg) 使用一个字典构建另一个字典
d = {‘a’:10, ‘b’:20, ‘c’:None, ‘d’:[1,2,3]} 最常用
类方法dict.fromkeys(iterable, value)
d = dict.fromkeys(range(5))
d = dict.fromkeys(range(5),0)

字典元素的访问

d[key]
返回key对应的值value
key不存在抛出KeyError异常
get(key[, default])
返回key对应的值value
key不存在返回缺省值,如果没有设置缺省值就返回None
setdefault(key[, default])
返回key对应的值value
key不存在,添加kv对,value为default,并返回default,如果default没有设置,缺省为None

字典的增加和修改

d[key] = value 将key对应的值修改为value key不存在添加新的kv对
update([other]) -> None 使用另一个字典的kv对更新本字典 key不存在,就添加 key存在,覆盖已经存在的key对应的值 就地修改
d.update(red=1)
d.update(((‘red’,2),))
d.update({‘red’:3})

字典删除

pop(key[, default]) key存在,移除它,并返回它的value , key不存在,返回给定的default , default未设置,key不存在则抛出KeyError异常
popitem() 移除并返回一个任意的键值对 ,字典为empty,抛出KeyError异常
clear() 清空字典

del a[‘c’] 看着像删除了一个对象,本质上减少了一个对象的引用,del 实际上删除的是名称,而不是对象

字典遍历

遍历key
for k in d: print(k)
for k in d.keys(): print(k)
遍历value
for k in d: print(d[k])
for k in d.keys(): print(d.get(k))
for v in d.values(): print(v)
遍历item,即kv对
for item in d.items(): print(item)
for k,v in d.items(): print(k, v)
for item in d.items(): print(item[0], item[1])

key的要求和set的元素要求一致
set的元素可以就是看做key,set可以看做dict的简化版
hashable 可哈希才可以作为key,可以使用hash()测试

collections.defaultdict([default_factory[, …]])
第一个参数是default_factory,缺省是None,它提供一个初始化函数。当key不存在的时候,会调用 这个工厂函数来生成key对应的value

collections.OrderedDict([items])
key并不是按照加入的顺序排列,可以使用OrderedDict记录顺序

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值