我得到了这个循环,它在列表中迭代,其中包含嵌套在“groups”中的键“id”。 另一个列表也包含键“id”,但不是嵌套的。我要做的第一件事是验证它们是否相等。如果没有,则继续循环
我遇到的问题是,对于追加后的新列表,CA
id多次相同。它们还被附加到另一个数组中并多次打印
list_one = [
{
'name': 'CA',
'group':
{
'id': ['a12345', 'aa12']
}
},
{
'name': 'TE',
'group':
{
'id': ['b12345']
}
},
{
'name': 'DA',
'group':
{
'id': ['cab124']
}
}
]
list_two = [
{
'name': 'CA',
'id': ['ac123', 'bb12345']
},
{
'name': 'TE',
'id': 'abc123'
},
{
'name': 'DA',
'id': 'e123'
}
]
for list_A in list_one: # list_one is a list
for list_B in list_two: # list_two is a list
if list_A['name'] == list_B['name']:
if list_B['id'] not in list_A['group']['id']: #list_A and #list_B are a dictionary
for index, ids in enumerate(list_A['group']['id']): # using tuple to assign the values using the index
list_A['group']['id'][index] = list_B['id']
new_list.append(list_A)
我得到的输出:
[
{
'name': 'CA',
'group': {
'id':
[
['ac123', 'bb12345'],
['ac123', 'bb12345']
]
}
},
{
'name': 'TE',
'group': {
'id': [
['abc123']
]
}
},
{
'name': 'DA',
'group': {
'id': [
['e123']
]
}
}
]
预期产出:
[
{
'name': 'CA',
'group': {
'id': ['ac123', 'bb12345']
}
},
{
'name': 'TE',
'group': {
'id': ['abc123']
}
},
{
'name': 'DA',
'group': {
'id': ['e123']
}
}
]
您可以通过字典理解来实现这一点:
当迭代遇到一个列表a和列表B,每个列表a和列表B都带有
'name':'CA'
list_B['id']
是一个包含两项的列表list_B['id']是一个包含两项的列表
listA['group']['id']是一个包含两项的列表
这部分代码迭代两次,并将
['ac123', 'bb12345']
分配给listA['group']['id']
的每个项就像这样
进行以下更改:
相关问题 更多 >
编程相关推荐