我在Python2.7
和中找到了以下有关dict理解的堆栈溢出文章Python 3+
:在Python中用列表理解创建字典,说明我可以像这样应用字典理解:
d = {key: value for (key, value) in sequence}
我在Python 3中尝试过。但是,它引发了一个异常。
d = {'a':1, 'b':2, 'c':3, 'd':4}
{key : value for (key, value) in d}
{key : value for key, value in d}
两种版本都提出了ValueError
这样的说法ValueError: need more than 1 value to unpack
。
在Python3中进行字典理解的最简单/最直接的方法是什么?
遍历字典只会产生 键 。使用d.items()
循环遍历键和值:
{key: value for key, value in d.items()}
ValueError
您看到的异常 不是 dict理解问题,也不限于Python 3。您会在Python 2或常规for
循环中看到相同的问题:
>>> d = {'a':1, 'b':2, 'c':3, 'd':4}
>>> for key, value in d:
... print key, value
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack
因为每次迭代仅产生 一项 。
如果不进行转换,{k: v for k, v in d.items()}
则只是冗长而昂贵的d.copy()
;仅当您对键或值进行更多操作,使用条件或更复杂的循环构造时,才使用dict理解。
字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 键必须是唯一的,但值则不必。 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 一个简单的字典实例: dict = {'
字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 键必须是唯一的,但值则不必。 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 一个简单的字典实例: dict = {'
Python3 字典 描述 Python 字典 popitem() 方法随机返回并删除字典中的一对键和值(一般删除末尾对)。 如果字典已经为空,却调用了此方法,就报出KeyError异常。 语法 popitem()方法语法: popitem() 参数 无 返回值 返回一个键值对(key,value)形式。 实例 以下实例展示了 popitem() 方法的使用方法: #!/usr/bin/py
Python3 字典 描述 Python 字典 pop() 方法删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 语法 pop()方法语法: pop(key[,default]) 参数 key: 要删除的键值 default: 如果没有 key,返回 default 值 返回值 返回被删除的值。 实例 以下实例展示了 pop() 方法的使
Python3 字典 描述 Python 字典 values() 方法以列表返回字典中的所有值。 语法 values()方法语法: dict.values() 参数 NA。 返回值 返回字典中的所有值。 实例 以下实例展示了 values() 方法的使用方法: #!/usr/bin/python3 dict = {'Sex': 'female', 'Age': 7, 'Name': 'Za
Python3 字典 描述 Python 字典 update() 函数把字典dict2的键/值对更新到dict里。 语法 update()方法语法: dict.update(dict2) 参数 dict2 -- 添加到指定字典dict里的字典。 返回值 该方法没有任何返回值。 实例 以下实例展示了 update()函数的使用方法: #!/usr/bin/python3 dict = {'N
Python3 字典 描述 Python 字典 setdefault() 方法和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。 语法 setdefault()方法语法: dict.setdefault(key, default=None) 参数 key -- 查找的键值。 default -- 键不存在时,设置的默认键值。 返回值 如果 key 在 字典中,返回对
Python3 字典 描述 Python 字典 keys() 方法以列表返回一个字典所有的键。 语法 keys()方法语法: dict.keys() 参数 NA。 返回值 返回一个字典所有的键。 实例 以下实例展示了 keys() 方法的使用方法: #!/usr/bin/python3 dict = {'Name': 'Runoob', 'Age': 7} print ("字典所有的键为