Python 将嵌套列表中的元组分离到单独的列表中
我需要根据一个值从嵌套字典中分离一个元组,如下所示,并将其放入另一个列表中。我想用“bb”值分隔元组Python 将嵌套列表中的元组分离到单独的列表中,python,list,tuples,Python,List,Tuples,我需要根据一个值从嵌套字典中分离一个元组,如下所示,并将其放入另一个列表中。我想用“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')],[('
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
它可以在删除值后生成结果列表。是否有方法获取另一个包含已删除值的列表
>>> 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')]]
>>>