Python字典视图浅析

字典的items(),keys()和values()方法用于返回字典键值对的视图对象。

视图对象支持迭代操作,并可反应未来对字典的修改。

视图对象不是列表,不支持索引。通常list()将视图对象转换为列表。

1.items() items方法返回键值对视图。例如:

x={'name':'john','age':25}
y=x.items()
#返回键值对视图
print("y=x.items()-->",end="")
print(y)
#显示键值对视图,键值对视图为dict_items()对象。
#y=x.items()-->dict_items([('name', 'john'), ('age', 25)])

#迭代键值对视图
print('循环start')
for a in y:
    print(a)
print('循环end')
#修改字典
x['age']=30
print('修改后--》',end="")
print(x)
print(y)
print("list-->",end="")
print(list(y))
"""
循环start
('name', 'john')
('age', 25)
循环end
修改后--》{'name': 'john', 'age': 30}
dict_items([('name', 'john'), ('age', 30)])
list-->[('name', 'john'), ('age', 30)]
"""

2.keys()返回字典中所有键的视图。例如:

x={'name':'john','age':25}
y=x.keys()
 
print("y-->",end="")
print(y)  #输出键的视图
 
#为字典添加键值对;
x['set']='male'
print('添加后的x-->',end="")
print(x)
 
print("修改后的键视图",end="")
print(y)
 
print("list(y)-->",end="")
print(list(y))
"""
x={'name':'john','age':25}
y=x.keys()
print("y-->",end="")
print(y) #输出键的视图
#为字典添加键值对;
x['set']='male'
print('添加后的x-->',end="")
print(x)
print("修改后的键视图",end="")
print(y)
print("list(y)-->",end="")
print(list(y))
"""

3.value()方法字典中全部值的视图。例如:

x={'name':'john','age':25}
y=x.values();
print("y=x.values()-->",end="")
print(y)
#输出值的视图
x['set']='male'
print('添加后的x-->',end="")
print(x)
 
print("修改后的值视图,y-->",end="")
print(y)
 
print("list(y)-->",end="")
print(list(y))
"""
y=x.values()-->dict_values(['john', 25])
添加后的x-->{'name': 'john', 'age': 25, 'set': 'male'}
修改后的值视图,y-->dict_values(['john', 25, 'male'])
list(y)-->['john', 25, 'male']
"""

4.键视图的集合操作;键视图支持各种集合运算,键值对视图和值视图不支持集合运算。例如:
 

x={'a':1,'b':2}
#键视图
kx=x.keys()
print(kx)
#键视图
y={'b':3,'c':4}
ky=y.keys()
print(ky)
 
#求值差
print(kx-ky)
 
#求并集
print(kx|ky)
#求交集;
print(kx&ky)
#求对称差集;
print(kx^ky)
"""
dict_keys(['a', 'b'])
dict_keys(['b', 'c'])
{'a'}
{'c', 'a', 'b'}
{'b'}
{'c', 'a'}
"""

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值