Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 特定格式词典的列表列表_Python 3.x_Dataframe_Plotly Dash_Cytoscape.js_Cytoscape - Fatal编程技术网

Python 3.x 特定格式词典的列表列表

Python 3.x 特定格式词典的列表列表,python-3.x,dataframe,plotly-dash,cytoscape.js,cytoscape,Python 3.x,Dataframe,Plotly Dash,Cytoscape.js,Cytoscape,我有这样一份清单: l=[['a','b'],['c','d'],['a','b','c']....] { ['a','b']: 2, ['c','d']: 2, ['a','b','c']: 3 } 我希望将其转换为以下格式的词典: [{ 'data': {'id': 'one', 'label': 'a'}, }, { 'data': {'id': 'two', 'label': 'b'},

我有这样一份清单:

l=[['a','b'],['c','d'],['a','b','c']....]
{ ['a','b']: 2, 
  ['c','d']: 2, 
  ['a','b','c']: 3
}
我希望将其转换为以下格式的词典:

[{
            'data': {'id': 'one', 'label': 'a'},

        },
        {
            'data': {'id': 'two', 'label': 'b'},

        },
{
            'data': {'id': 'three', 'label': 'c'},

        },
        {
            'data': {'id': 'four', 'label': 'd'},

        }]
我最初尝试了以下代码:

dict_list = { i : len(l) for i in l }
我得到了以下错误:

TypeError: unhashable type: 'list'

出现错误的原因是您试图将
列表设置为字典键。
以下示例将再现相同的结果:

>>> d = dict()
>>> d[['a', 'b']] = 123
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    d[['a', 'b']] = 123
TypeError: unhashable type: 'list'

为了获得您想要的列表,您需要创建一个嵌套循环(本机解决方案)

这将导致:

[
 {'data': {'id': 'one', 'label': 'a'}}, 
 {'data': {'id': 'two', 'label': 'b'}},
 {'data': {'id': 'three', 'label': 'c'}}, 
 {'data': {'id': 'four', 'label': 'd'}}
]
附言


有关(软件包)的详细信息。

您遇到的错误是因为您试图将
列表设置为字典键。
以下示例将再现相同的结果:

>>> d = dict()
>>> d[['a', 'b']] = 123
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    d[['a', 'b']] = 123
TypeError: unhashable type: 'list'

为了获得您想要的列表,您需要创建一个嵌套循环(本机解决方案)

这将导致:

[
 {'data': {'id': 'one', 'label': 'a'}}, 
 {'data': {'id': 'two', 'label': 'b'}},
 {'data': {'id': 'three', 'label': 'c'}}, 
 {'data': {'id': 'four', 'label': 'd'}}
]
附言


有关(软件包)的详细信息。

您不能将列表(
i
)用作字典中的键,因为正如错误所述,这些是不可散列的。您能更具体地告诉我们如何将嵌套列表映射到字典吗?@SamChats与我在问题中所显示的相同。我想要一个嵌套键值对。您应该尝试直接用python创建字典,就像您在cytoscape中需要它一样。这将节省时间和精力,而不是转换数组。Python有字典,所以这应该不是问题。@StephanT。但是我想把列表转换成这种字典格式。我在列表中有很多元素。我该怎么做?你不能把列表(
I
)作为字典中的键,因为,就像错误所说的,这些是不可散列的。您能更具体地告诉我们如何将嵌套列表映射到字典吗?@SamChats与我在问题中所显示的相同。我想要一个嵌套键值对。您应该尝试直接用python创建字典,就像您在cytoscape中需要它一样。这将节省时间和精力,而不是转换数组。Python有字典,所以这应该不是问题。@StephanT。但我希望列表转换成这种字典格式。列表中有很多元素。我该怎么做?问题并没有具体说明这一点,但cytoscape.js需要节点(这就是您的结果)和边。如果没有边,图形的布局就没有任何意义。您的答案很好,但可能无法与cytoscape.js一起使用。@Sri测试,请按照@Stephan-t所指出的,为问题添加更多细节。这样我就可以编辑我的答案,这样它就更适合你的问题了。@Amiram这真的很有帮助。但正如Stephan T.已经提到的。我需要连接每个列表中的节点。所以,我需要字典中的另一个键来连接边,如“数据”:{“源”:“一”,“目标”:“二”。},请参考此链接,是否可以添加预期的输出示例?问题并没有具体说明这一点,但cytoscape.js需要节点(这就是您的结果)和边。如果没有边,图形的布局就没有任何意义。您的答案很好,但可能无法与cytoscape.js一起使用。@Sri测试,请按照@Stephan-t所指出的,为问题添加更多细节。这样我就可以编辑我的答案,这样它就更适合你的问题了。@Amiram这真的很有帮助。但正如Stephan T.已经提到的。我需要连接每个列表中的节点。所以,我需要字典中的另一个键来连接边,如“数据”:{“源”:“一”,“目标”:“二”。},请参考此链接,是否可以添加预期的输出示例?