gpt4 book ai didi

dictionary - dict.keys 的问题不是打印列表而是打印列表的 View

转载 作者:行者123 更新时间:2023-12-02 22:10:06 25 4
gpt4 key购买 nike

我一直试图通过使用 dict.keys 从我的字典中获取键列表,但它一直给我:

def reverse(PB = {'l': 3, 'y':1, 'u':2}):
打印(PB.keys())

打印:

dict_keys(['u', 'l', 'y'])

在我拥有超过 2.7 的 python 版本之前,我从未遇到过这个问题......有什么想法吗?

最佳答案

Python 3 返回 view objects :

The objects returned by dict.keys(), dict.values() and dict.items() are view objects. They provide a dynamic view on the dictionary’s entries, which means that when the dictionary changes, the view reflects these changes.

您可以通过将它们传递给 list() 将它们转换为列表(Python 2 行为):

>>> d = {'l': 3, 'y':1, 'u':2}
>>> d.keys()
dict_keys(['y', 'l', 'u'])
>>> list(d.keys())
['y', 'l', 'u']

此外,传递 mutable objects as default arguments 时要小心:

>>> def reverse(PB={'l': 3, 'y':1, 'u':2}):
... PB['l'] += 4
...
... print(PB)
...
>>> reverse()
{'y': 1, 'l': 7, 'u': 2}
>>> reverse()
{'y': 1, 'l': 11, 'u': 2}
>>> reverse()
{'y': 1, 'l': 15, 'u': 2}

我会默认为 None:

def reverse(PB=None):
if PB is None:
PB = {'l': 3, 'y':1, 'u':2}

关于dictionary - dict.keys 的问题不是打印列表而是打印列表的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15445067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com