删除嵌套列表中的双元素

我有一个名为的嵌套 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']]]]]

谢谢


弑天下
浏览 169回答 1
1回答

湖上湖

您可以使用每个子列表中的扁平值创建一个字典: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']]]]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python