提问人:nachtblume 提问时间:4/13/2022 最后编辑:Timur Shtatlandnachtblume 更新时间:11/18/2023 访问量:1956
dict.values() 没有按预期返回列表
dict.values() doesn't return a list as expected
问:
我正在尝试从我的字典中获取值
for elem in set(sample_txt):
d = {elem:sample_txt.count(elem)}
print(d.values())
d.values() 应该返回一个值列表:
dict. keys() 和 dict. values() 方法返回键列表 或显式值。还有一个 items() 返回一个列表 (键,值)元组,这是检查所有元组的最有效方法 字典中的键值数据。与 developers.google.com 相比
所以我应该得到类似的东西.但是,在我的示例中,我得到:['a', 'b', 'etc']
type(d.values())
---> <级“dict_values”>
怎么了?
答:
7赞
kosciej16
4/13/2022
#1
您发布的报价与 python2 有关,它确实返回了 .在python3中,你需要自己投射list
list(d.values())
1赞
dawg
4/13/2022
#2
鉴于:
Python 3.10.2 (main, Feb 2 2022, 06:19:27) [Clang 13.0.0 (clang-1300.0.29.3)] on darwin
对于 Python 3,返回一个 dict_value 对象,该对象是 dict 视图类之一:d.values()
>>> txt='abcaaab'
>>> d={k:txt.count(k) for k in set(txt)}
>>> d
{'a': 4, 'c': 1, 'b': 2}
>>> d.values()
dict_values([4, 1, 2])
dict 视图的一个巧妙之处在于,如果底层 dict 发生更改,则视图会更新:
>>> d
{'a': 4, 'c': 1, 'b': 2}
>>> v=d.values()
>>> v
dict_values([4, 1, 2])
>>> d['z']='live update!'
>>> v
dict_values([4, 1, 2, 'live update!'])
根据 Python 的版本,表示形式可能包括内容,也可能仅包含类。
评论
d
d[elem] = sample_txt.count(elem)