我需要根据嵌套字典中的值分隔元组,如下所示,并将其放在另一个列表中。我想用元素'bb'
分隔元组original_list= [[('aa','1'),('bb','2')],[('cc','3'),('bb','4')],[('dd','5'),('dd','6')]]
我需要两个列表,如下所示,
final_list= [[('aa','1')],[('cc','3')],[('dd','5'),('dd','6')]]
deleted_list = [[('bb','2')],[('bb','4')]]
我使用了以下递归代码,
def remove_items(lst, item):
r = []
for i in lst:
if isinstance(i, list):
r.append(remove_items(i, item))
elif item not in i:
r.append(i)
return r
删除值后可以生成结果列表。有没有办法获得删除值的另一个列表?
答案 0 :(得分:1)
>>> def remove_items(lst, item):
... r = []
... d = []
... for i in lst:
... if isinstance(i, list):
... r_tmp,d_tmp = remove_items(i, item)
... if r_tmp:
... r.append(r_tmp)
... if d_tmp:
... d.append(d_tmp)
... else:
... if item not in i:
... r.append(i)
... else:
... d.append(i)
... return r,d
...
>>> original_list= [[('aa','1'),('bb','2')],[('cc','3'),('bb','4')],[('dd','5'),('dd','6')]]
>>> result = remove_items(original_list,'bb')
>>> result[0]
[[('aa', '1')], [('cc', '3')], [('dd', '5'), ('dd', '6')]]
>>> result[1]
[[('bb', '2')], [('bb', '4')]]
>>>