11、字典

本文详细介绍了Python字典的基本概念、初始化方式、元素访问、新增与修改、删除操作,以及如何遍历字典的key、value和item。字典是Python中用于存储键值对的数据结构,它是可变、无序且key不重复的。通过get()、setdefault()、update()等方法,可以方便地操作字典。同时,文章还提及了Python2和3中字典操作的差异,强调了key的哈希性和字典视图的动态特性。

字典dict

Dict 即dictionary,也称为mapping

python 中,字典由任意2各个元素构成的集合,每一个元素称为item,也称为Entry。这个item是由(key,value)组成的二元组。

字典是可变的、无序的、key不重复的key-value paris 键值对集合。

初始化 

  • dict(**kwargs) 使用name=value对初始化一个字典
  • dict(it而able,**kwargs)使用可迭代对象和name=value对构造字典,不过可迭代对象的元素必须是一个二元结构**
  • dict(mapping,**kwargs) 使用一个字典构建另一个字典
d1 = {}
d2 = dict()
d3 = dict(a=100, b=200)
d4 = dict(d3) # 构造另外一个字典
d5 = dict(d4, a=300, c=400)
d6 = dict([('a', 100), ['b', 200], (1, 'abc')], b=300, c=400)

 元素访问

  • 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对应的值

        就地修改

 删除

  • pop(key[,default])

        key存在,移除它,并返回它的value

        key不存在,返回给定的default

        default 未设置,key不存在则抛出keyerror异常

  • popitem()

        移除并返回一个任意的键值对

        字典为empty,抛出异常KeyError异常

  • clear()

        清空字典

 遍历

1、遍历key

for k in d:
    print(k)

for k in d.keys():
    print(k)

2、遍历value

for v in d.values():
    print(v)


for k in d.keys():
    print(d[k])
    print(d.get(k))

 3、遍历item

  •         
for item in d.items():
    print(item)
    print(item[0],item[1])

for k,v in d.items():
    print(k,v)

for k,_ in d.items():
    print(k)

for _,v in d.items():
    print(v)

Python3 中,keys、values、items方法返回一个类似一个生成器的可迭代对象

dictionary view对象,可以使用len()、iter()、in操作

字典的entry的动态的视图,字典变化,视图将反映出这些变化

keys()返回一个set对象,也就是可以看做一个set集合。如果values()都可以hash,那么items()也可以看做是类set对象

Python2中,上面的方法会返回一个新的列表,立即占据新的内存空间。所以Python2建议使用iterkeys、itervalues、itertitems版本,返回一个迭代器,而不是返回一个copy。

 key

字典的key和set的元素要求一致

  • set的元素可以就是看做key,set可以看做dict的简化版
  • hashable 可哈希才可以作为key,可以使用hash()测试
  • 使用key访问,就如同列表使用index访问一样,时间复杂度都是O(1)这也是最好的访问元素的方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值