Python使用列表理解创建多维字典
我有以下格式的词典:Python使用列表理解创建多维字典,python,dictionary,list-comprehension,valueerror,Python,Dictionary,List Comprehension,Valueerror,我有以下格式的词典: dictionary = {'key' : ('value', row_number, col_number)} 我希望将该词典转换为以下格式: converted_dict = {'key' : {'row':row_number, 'col':col_number}} 通过使用下面的代码,我得到以下错误 dict_list = [(key, dict([('row',value[1]), ('column',value[2])])) for
dictionary = {'key' : ('value', row_number, col_number)}
我希望将该词典转换为以下格式:
converted_dict = {'key' : {'row':row_number, 'col':col_number}}
通过使用下面的代码,我得到以下错误
dict_list = [(key, dict([('row',value[1]), ('column',value[2])])) for
key, value in cleaned_dict]
converted_dict = dict(dict_list)
ValueError: too many values to unpack (expected 2)
我不太明白你为什么要把字典转换成列表,而实际上你想要的是听写。你似乎不明白如何理解听写。尝试以下方法:
converted_dict = {
key: {'row': value[1], 'column': value[2]} for key, value in cleaned_dict.items()
}
还要注意的是,如果你想迭代字典中的键和值,你应该调用
dictionary.items()
(就像上面的代码一样)我不太明白为什么你试图将字典转换为列表,而你想要的实际上是dict。你似乎不明白如何进行dict理解。尝试以下方法:
converted_dict = {
key: {'row': value[1], 'column': value[2]} for key, value in cleaned_dict.items()
}
还请注意,如果要在字典中同时迭代键和值,则应调用
dictionary.items()
(如上面的代码中所示)您可以使用字典理解:
dictionary = {'key' : ('value', 'row_number', 'col_number')}
>>> {k: {'row': row, 'col': col} for k, (_, row, col) in dictionary.items()}
{'key': {'row': 'row_number', 'col': 'col_number'}}
您可以使用字典理解:
dictionary = {'key' : ('value', 'row_number', 'col_number')}
>>> {k: {'row': row, 'col': col} for k, (_, row, col) in dictionary.items()}
{'key': {'row': 'row_number', 'col': 'col_number'}}
遍历字典只返回nd,不需要额外的步骤将列表转换为字典。钥匙 所以这里我们需要一对键和值,所以我们需要使用
dict.items
In [6]: lst = {'a':(0,1),'b':(2,1)}
In [7]: converted_dict = dict((key, dict([('row',value[0]), ('column',value[1])])) for key, value in lst.items())
Out[7]: {'a': {'column': 1, 'row': 0}, 'b': {'column': 1, 'row': 2}}
遍历字典只返回nd,不需要额外的步骤将列表转换为字典。钥匙 所以这里我们需要一对键和值,所以我们需要使用
dict.items
In [6]: lst = {'a':(0,1),'b':(2,1)}
In [7]: converted_dict = dict((key, dict([('row',value[0]), ('column',value[1])])) for key, value in lst.items())
Out[7]: {'a': {'column': 1, 'row': 0}, 'b': {'column': 1, 'row': 2}}
…还有另一个听写理解
其中:
dictionary = {'a' : ('value', 1, 2), 'b' : ('value', 0, 0)}
返回:
{'a': {'row': 1, 'column': 2}, 'b': {'row': 0, 'column': 0}}
代码的唯一错误是缺少.items()
1。它必须是:
dict\u list=[…对于键,清除dict.items()中的值]
一,。如果您使用的是Python2,则需要使用.iteritems()
。…以及另一种dict理解
其中:
dictionary = {'a' : ('value', 1, 2), 'b' : ('value', 0, 0)}
返回:
{'a': {'row': 1, 'column': 2}, 'b': {'row': 0, 'column': 0}}
代码的唯一错误是缺少.items()
1。它必须是:
dict\u list=[…对于键,清除dict.items()中的值]
一,。如果您使用的是Python 2,则需要使用
.iteritems()
。谢谢,它真的帮助了我。谢谢,它真的帮助了我。