python字典遍历输出_详解Python字典的复制与遍历

本篇介绍Python中字典的复制与遍历。文中会讨论字典的浅复制与深复制的区别,字典的遍历方法和方式。通过本篇的学习,可以了解字典浅复制与深复制的区别,掌握字典遍历的方法和方式。

1、字典的复制

Python字典提供了内置函数copy方法,实现对字典的复制操作。字典复制分为浅复制和深复制两种方式。浅复制只是把当前字典内的子对象的引用复制给新字典,当被复制字典的子对象内容改变时,新字典的子对象内容也会改变;深复制把当前字典的全部内容,也包括子对象的内容都完全复制给新字典,被复制字典和新字典是两个独立的数据对象,被复制字典内容的改变不会影响新字典的内容。浅复制用copy方法,深复制用deepcopy方法。

例1:字典的复制例子

u=2653894384,3462002313&fm=173&app=49&f=JPEG?w=640&h=231&s=EE40E0124B2345244E7D25DA000080B2

例1输出结果如下图所示。

u=3350040104,1449674611&fm=173&app=49&f=JPEG?w=554&h=290&s=E110E132173A74205A7D00DA0000C0B1

在案例代码中,adict字典有‘姓名’和‘性别’两个key,分别对应值‘Tom’和值‘['男','女']’,值‘['男','女']’是一个列表对象。然后将adict字典分别浅复制和深复制给bdict字典和cdict字典。随后又对adict字典的元素进行删除操作,最后分别遍历输出bdict字典和cdict字典。从输出结果可以看出,深复制的cdict字典内容没有改变,浅复制的bdict字典内容和adict字典的内容一致,说明adict字典内容的改变影响到了bdict字典内容,而cdict字典内容不受任何影响。

2、字典的遍历

遍历字典主要是遍历字典的项、键和值。遍历字典的项是把字典包含的所有项都列举出来,遍历字典的键和值是把字典所有的键和值都列举出来。字典提供的items方法可获取字典所有项的集合,在for循环语句中使用items方法可以遍历字典包含的所有项。

例2:遍历字典的项

u=1176471890,4248086016&fm=173&app=49&f=JPEG?w=640&h=92

例2输出结果如下图所示。

u=4034203396,1404284389&fm=173&app=49&f=JPEG?w=554&h=206&s=2110CC3217785D20487DC0DB000050B2

当程序需要遍历字典的键或值时,可以参考下面的例子代码。

例3:遍历字典的键或值

u=3963349580,1001941553&fm=173&app=49&f=JPEG?w=640&h=142&s=4E40F81A4B626D204C7D18DA0000D0B2

例3输出结果如下图所示。

u=3916714157,1158115222&fm=173&app=49&f=JPEG?w=554&h=207&s=A590CC3205785D20587D00DB0000C0B2

下面给出了同时遍历字典键和值的例子代码。

例4:同时遍历字典的键和值

u=1965319000,608589132&fm=173&app=49&f=JPEG?w=640&h=95

例4输出结果如下图所示。

u=2116042501,632077757&fm=173&app=49&f=JPEG?w=554&h=204&s=A110C03205786D20587D40DB000050B2

课程小结

(1)复制一个字典对象可以使用copy函数,该函数创建一个新的字典,并将原字典的内容复制给新字典。复制方式分为浅复制和深复制两种方式。浅复制只是把字典中的子对象(如字典中的列表、元组等)的引用复制给新字典,也就是说被复制字典的子对象和新字典的子对象使用同一个内存区域,当被复制字典的子对象内容改变时,新字典的子对象内容也会同时改变。深复制是相对于浅复制来说的,在复制过程中,Python会把原字典完整的内容(包括子对象)复制到新字典中,当被复制字典内容改变时,不会影响到新字典的内容。浅复制可以节省内存空间,如果把被复制字典和新字典当做同一个字典来使用时,推荐使用浅复制。

(2)在for循环语句中使用字典提供的items方法,可以遍历字典中的每个数据项。也可以使用for循环语句中迭代访问字典所有的键或值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值