1
我一直在尝试使用dict.keys拿到钥匙我的字典的名单的看法,但它一直给我:问题dict.keys不打印列表,但打印列表的
def reverse(PB = {'l': 3, 'y':1, 'u':2}): print(PB.keys())
打印:
dict_keys(['u', 'l', 'y'])
我从来没有这个问题之前,我有一个Python版本超出2.7 ...任何想法?
我一直在尝试使用dict.keys拿到钥匙我的字典的名单的看法,但它一直给我:问题dict.keys不打印列表,但打印列表的
def reverse(PB = {'l': 3, 'y':1, 'u':2}): print(PB.keys())
打印:
dict_keys(['u', 'l', 'y'])
我从来没有这个问题之前,我有一个Python版本超出2.7 ...任何想法?
的Python 3返回view objects:
目的通过
dict.keys()
,dict.values()
和dict.items()
返回是视图对象。它们提供了有关字典条目的动态视图,这意味着当字典更改时,视图反映了这些更改。
你可以通过它们将它们转换成一个列表(Python的2行为)到list()
:
>>> 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}
+1打我吧 – 2013-03-16 03:04:39
非常感谢你的回答!是一个很大的帮助。 – 2013-05-04 02:47:55