Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.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:将元组列表转换为dict列表_Python_Json_D3.js_Bundle Layout - Fatal编程技术网

Python:将元组列表转换为dict列表

Python:将元组列表转换为dict列表,python,json,d3.js,bundle-layout,Python,Json,D3.js,Bundle Layout,我正试图搞乱:(它的代码是) 但是,我在尝试以正确的格式获取数据时遇到困难 数据(供参考)必须采用以下格式: [ {"name":"something 1","size":number 1,"imports":["thing 1","thing 2","thing 3","thing 4","thing 5","thing 6"]}, {"name":"something 2","size":number 2,"imports":["thing 1","thing 2","thing 3","

我正试图搞乱:(它的代码是)

但是,我在尝试以正确的格式获取数据时遇到困难

数据(供参考)必须采用以下格式:

[
{"name":"something 1","size":number 1,"imports":["thing 1","thing 2","thing 3","thing 4","thing 5","thing 6"]},
{"name":"something 2","size":number 2,"imports":["thing 1","thing 2","thing 3","thing 4","thing 5"]}
]
现在,我的数据(截至目前)的格式是(它是使用nltk收集的):

使用defaultdict,我能够使用以下行转换数据:

pos = [('would', 'MD'), ('said', 'VBD'), ('like', 'IN'), ('man', 'NN')]
d = defaultdict( list )
for a, b in pos:
    d[b].append(a)
d = [ {b, d[b]} for b in d ] 
致:

我不太确定如何继续或如何以正确的格式获得它。任何帮助都将不胜感激。谢谢

编辑:我应该更清楚一些;我的预期输出如下:

[
{'name': 'man', 'POS':['MD']}
]
编辑

oldList = [('would', 'MD'), ('said', 'VBD'), ('like', 'IN'), ('man', 'NN')]
newList = [{'name':a, 'POS':[b]} for a,b in list]

newList == [{'name': 'would', 'POS': ['MD']}, {'name': 'said', 'POS': ['VBD']}, {'name': 'like', 'POS': ['IN']}, {'name': 'man', 'POS': ['NN']}]

要转换为词典列表,请执行以下操作:

list = [('would', 'MD'), ('said', 'VBD'), ('like', 'IN'), ('man', 'NN')]
newlist = []
for a,b in list:
    newlist.append({a:b})

newlist == [{'would': 'MD'}, {'said': 'VBD'}, {'like': 'IN'}, {'man': 'NN'}]
或将每个元组添加到一个字典:

list = [('would', 'MD'), ('said', 'VBD'), ('like', 'IN'), ('man', 'NN')]
newlist = {a:b for a, b in list}

newlist == {'said': 'VBD', 'like': 'IN', 'would': 'MD', 'man': 'NN'}
像这样的

[{k, v} for k, v in list]

您可以对列表中的(a,b)执行
并跳过
[0]
最好避免使用
列表作为变量名,因为它是内置的。数据的预期输出是什么?您没有指明要到最终表单的映射。“某物1”应该是“MD”吗?“第一件事”是“会”吗?“数字1”应该是什么?你能更新你的输入和输出数据以匹配吗?现在,你的输入数据和你的输出数据一点也不像。是的,我知道。我试着这么做已经有一段时间了。但是输入直接来自nltk函数。我不知道如何修改元组列表以合并“name”和“pos”内容。您的预期结果仍然不完全清楚,但我根据您上次的编辑更新了我的答案。这将为
列表中的每对元组创建一个包含
k
v
的集合。这就是你期望它做的吗?
list = [('would', 'MD'), ('said', 'VBD'), ('like', 'IN'), ('man', 'NN')]
newlist = {a:b for a, b in list}

newlist == {'said': 'VBD', 'like': 'IN', 'would': 'MD', 'man': 'NN'}
[{k, v} for k, v in list]