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'}
"""

 

匿名

发表评论

匿名网友