u= [['1', '2'], ['3'], ['4', '5', '6'], ['7', '8', '9', '10']]
v=[{'id': 'a', 'adj': ['blue', 'yellow']}, {'id': 'b', 'adj': ['purple', 'red']}, {'id': 'c', 'adj': ['green', 'orange']}, {'id': 'd', 'adj': ['black', 'purple']}]
我想要:
result=[ {'id': 'a', 'adj': ['blue', 'yellow'], 'value': '1' },
{'id': 'a', 'adj': ['blue', 'yellow'], 'value': '2' },
{'id': 'a', 'adj': ['purple', 'red'], 'value': '3' },
...]
我已将u
转换为字典:
m=[]
for i in u:
s={}
s['value']=i
m.append(s)
#>>m= [{'value': ['1', '2']}, {'value': ['3']}, {'value': ['4', '5', '6']}, {'value': ['7', '8', '9', '10']}]
然后尝试应用zip
函数
for i,j in enumerate(v):
for s,t in enumerate(l):
if i= =s:
#zip 2 dictionary together. Stuck here
提前多谢了!这是我学习编程的第二周
您需要压缩、迭代u中的每个子列表、v中的每个dict并添加新的键/值对,最后将新dict附加到列表中:
这将给你:
dict有一个
.copy
属性,或者你可以调用dict(dct)
,但是因为你有可变的对象作为值,仅仅做一个浅层拷贝是不起作用的。下面的示例显示了实际的差异:what-exactly-is-the-difference-between-shallow-copy-deepcopy-and-normal-assignment
对两个列表应用
zip
,并创建一个新字典,其中旧的字典将来自相应列表的值添加为键值条目value
:来自列表的数字:您可以使用以下代码来获得所需的结果
它在
u
的enumerate
-离子上迭代,然后将正确的v
dict和value
的组合附加到result
列表您可以使用列表将其压缩为相对干净的一行
相关问题 更多 >
编程相关推荐