为了账号安全,请及时绑定邮箱和手机立即绑定

删除嵌套列表中的双元素

删除嵌套列表中的双元素

弑天下 2021-08-24 17:02:13
我有一个名为的嵌套 python 列表:[[[[['p'], ['q'], ['t'], ['u']], [['r'], ['s'], ['v'], ['w']]]], [[[['p'], ['q'], ['t'], ['w']], [['r'], ['s'], ['v'], ['u']]]], [[[['p'], ['q'], ['v'], ['u']], [['r'], ['s'], ['t'], ['w']]]], [[[['p'], ['q'], ['v'], ['w']], [['r'], ['s'], ['t'], ['u']]]], [[[['p'], ['s'], ['t'], ['u']], [['r'], ['q'], ['v'], ['w']]]], [[[['p'], ['s'], ['t'], ['w']], [['r'], ['q'], ['v'], ['u']]]], [[[['p'], ['s'], ['v'], ['u']], [['r'], ['q'], ['t'], ['w']]]], [[[['p'], ['s'], ['v'], ['w']], [['r'], ['q'], ['t'], ['u']]]], [[[['r'], ['q'], ['t'], ['u']], [['p'], ['s'], ['v'], ['w']]]], [[[['r'], ['q'], ['t'], ['w']], [['p'], ['s'], ['v'], ['u']]]], [[[['r'], ['q'], ['v'], ['u']], [['p'], ['s'], ['t'], ['w']]]], [[[['r'], ['q'], ['v'], ['w']], [['p'], ['s'], ['t'], ['u']]]], [[[['r'], ['s'], ['t'], ['u']], [['p'], ['q'], ['v'], ['w']]]], [[[['r'], ['s'], ['t'], ['w']], [['p'], ['q'], ['v'], ['u']]]], [[[['r'], ['s'], ['v'], ['u']], [['p'], ['q'], ['t'], ['w']]]], [[[['r'], ['s'], ['v'], ['w']], [['p'], ['q'], ['t'], ['u']]]]]在那个列表中,我把每个元素都加倍了。示例:[[[['p'], ['q'], ['t'], ['u']], [['r'], ['s'], ['v'], ['w']]]]是一样的[[[['r'], ['s'], ['v'], ['w']], [['p'], ['q'], ['t'], ['u']]]]如何使用列表理解删除双元素?我试图将列表转换为一组,但这不起作用。所需的输出应该是:[[[[['p'], ['q'], ['t'], ['u']], [['r'], ['s'], ['v'], ['w']]]], [[[['p'], ['q'], ['t'], ['w']], [['r'], ['s'], ['v'], ['u']]]], [[[['p'], ['q'], ['v'], ['u']], [['r'], ['s'], ['t'], ['w']]]], [[[['p'], ['q'], ['v'], ['w']], [['r'], ['s'], ['t'], ['u']]]], [[[['p'], ['s'], ['t'], ['u']], [['r'], ['q'], ['v'], ['w']]]], [[[['p'], ['s'], ['t'], ['w']], [['r'], ['q'], ['v'], ['u']]]], [[[['p'], ['s'], ['v'], ['u']], [['r'], ['q'], ['t'], ['w']]]], [[[['p'], ['s'], ['v'], ['w']], [['r'], ['q'], ['t'], ['u']]]]]谢谢
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

您可以使用每个子列表中的扁平值创建一个字典:


d = [[[[['p'], ['q'], ['t'], ['u']], [['r'], ['s'], ['v'], ['w']]]], [[[['p'], ['q'], ['t'], ['w']], [['r'], ['s'], ['v'], ['u']]]], [[[['p'], ['q'], ['v'], ['u']], [['r'], ['s'], ['t'], ['w']]]], [[[['p'], ['q'], ['v'], ['w']], [['r'], ['s'], ['t'], ['u']]]], [[[['p'], ['s'], ['t'], ['u']], [['r'], ['q'], ['v'], ['w']]]], [[[['p'], ['s'], ['t'], ['w']], [['r'], ['q'], ['v'], ['u']]]], [[[['p'], ['s'], ['v'], ['u']], [['r'], ['q'], ['t'], ['w']]]], [[[['p'], ['s'], ['v'], ['w']], [['r'], ['q'], ['t'], ['u']]]], [[[['r'], ['q'], ['t'], ['u']], [['p'], ['s'], ['v'], ['w']]]], [[[['r'], ['q'], ['t'], ['w']], [['p'], ['s'], ['v'], ['u']]]], [[[['r'], ['q'], ['v'], ['u']], [['p'], ['s'], ['t'], ['w']]]], [[[['r'], ['q'], ['v'], ['w']], [['p'], ['s'], ['t'], ['u']]]], [[[['r'], ['s'], ['t'], ['u']], [['p'], ['q'], ['v'], ['w']]]], [[[['r'], ['s'], ['t'], ['w']], [['p'], ['q'], ['v'], ['u']]]], [[[['r'], ['s'], ['v'], ['u']], [['p'], ['q'], ['t'], ['w']]]], [[[['r'], ['s'], ['v'], ['w']], [['p'], ['q'], ['t'], ['u']]]]]

def flatten(_d):

   return [[c for [c] in _d[0][0]], [c for [c] in _d[0][1]]]


def match(a, b):

  return all(c == d for c, d in zip(sorted(a), sorted(b)))


_d = {i:flatten(a) for i, a in enumerate(d)}

result = [a for i, a in enumerate(d) if not any(match(_d[i], _d[c]) for c in range(i))]

输出:


[[[[['p'], ['q'], ['t'], ['u']], [['r'], ['s'], ['v'], ['w']]]], 

 [[[['p'], ['q'], ['t'], ['w']], [['r'], ['s'], ['v'], ['u']]]], 

 [[[['p'], ['q'], ['v'], ['u']], [['r'], ['s'], ['t'], ['w']]]], 

 [[[['p'], ['q'], ['v'], ['w']], [['r'], ['s'], ['t'], ['u']]]], 

 [[[['p'], ['s'], ['t'], ['u']], [['r'], ['q'], ['v'], ['w']]]], 

 [[[['p'], ['s'], ['t'], ['w']], [['r'], ['q'], ['v'], ['u']]]], 

 [[[['p'], ['s'], ['v'], ['u']], [['r'], ['q'], ['t'], ['w']]]], 

 [[[['p'], ['s'], ['v'], ['w']], [['r'], ['q'], ['t'], ['u']]]]]


查看完整回答
反对 回复 2021-08-24
  • 1 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号