Python 根据值将嵌套列表拆分/排序到字典中

Python 根据值将嵌套列表拆分/排序到字典中,python,list,dictionary,Python,List,Dictionary,我有一个嵌套列表,我想根据嵌套列表中的特定值将其拆分并排序到字典中 下面是一个示例代码: list = [['item1',['some_value1', 1]], [['item2',['some_value2', 2]], ['item3',['some_value3', 1]]] # I would like to convert this list into a dictionary final_dict1 = {1:{'item1':['some_value1', 1], 'ite

我有一个嵌套列表,我想根据嵌套列表中的特定值将其拆分并排序到字典中

下面是一个示例代码:

list = [['item1',['some_value1', 1]], [['item2',['some_value2', 2]], ['item3',['some_value3', 1]]]

# I would like to convert this list into a dictionary

final_dict1 = {1:{'item1':['some_value1', 1], 'item3':['some_value3', 1]}, 2:{'item2':['some_value2', 2]}}

# OR

final_dict2 = {1:[['item1',['some_value1', 1]], ['item3',['some_value3', 1]]], 2:['item2':['some_value2', 2]]}

基本上,我希望根据列表项各自子列表中的特定键对列表项进行排序,并将其编成字典。

IIUC,您可以执行以下操作(使用):

list = [['item1',[someValue1, 1]], ['item2',[someValue2, 2]], ['item3',[someValue3, 1]]]

result = {}
for i, item in enumerate(list):
    result[i] = {item[1][0]: item[1][1]}
输出

{1: {'item1': ['some_value1', 1], 'item3': ['some_value3', 1]}, 2: {'item2': ['some_value2', 2]}}

您的编码尝试在哪里?您已经确定了所需的两个步骤,在线教程很好地介绍了这两个步骤。@Prune我已尝试在网上搜索教程/文章,但找不到任何有助于我完成任务的内容。如果你知道任何能帮助我的文章,我将不胜感激。嵌套有多少层?@DanielMesejo只有两层嵌套。列表结构与示例中的完全相同。为了简单起见,我把它缩短了。您可以搜索“Python列表排序教程”和“Python dict创建教程”。一个稍微高级一点的术语是“听写理解”——也有列表理解,但我怀疑你会想在这里使用它们。请求特定的场外链接超出了堆栈溢出的范围。嗯,它返回一条错误消息
TypeError:unhabable type:'list'
我修复了它,对此表示抱歉。请再试一次好的,它确实运行了代码,但是,结果并不完全是我想要的:
{0:{'some_value1':1},1:{'item3':['some_value3',1]}
它似乎“吞下”了列表中的第二项。这很有效,非常感谢您的帮助,我将查看链接以获取更多信息@TimesAndPlaces很高兴我能提供帮助,该链接提供了有关defaultdict的信息。
{1: {'item1': ['some_value1', 1], 'item3': ['some_value3', 1]}, 2: {'item2': ['some_value2', 2]}}