如果元组对相同,则删除元组对



我在python中遇到元组问题。我有以下元组列表:

gamma2 = [[('p', 'u'), ('r', 'w')], [('p', 'w'), ('r', 'u')], [('r', 'u'), ('p', 'w')],[('r', 'w'), ('p', 'u')]]

现在,部分[('p', 'u'), ('r', 'w')][('r', 'w'), ('p', 'u')]对我以及[('p', 'w'), ('r', 'u')][('r', 'u'), ('p', 'w')]是相同的。

所以我想删除列表中的一个双条目,但我不知道怎么做。

我尝试过哈希表和集合,但问题是,这个元组对与哈希表不同,它将由gamma2.add()添加。

那么你有个主意吗?

您可以尝试使用元组ans设置

gamma2 = [[('p', 'u'), ('r', 'w')], [('p', 'w'), ('r', 'u')], [('r', 'u'), ('p', 'w')],[('r', 'w'), ('p', 'u')]]
set([tuple(set(x)) for x in gamma2])

在某些情况下,最好在set中使用sorted(感谢@rockikz(

set([tuple(sorted(x)) for x in gamma2])

第三种解决方案是使用CCD_ 8

set([frozenset(x) for x in gamma2])

会给你结果:

{(('p', 'w'), ('r', 'u')), (('r', 'w'), ('p', 'u'))}

集合-唯一值列表

  • 循环内的集合-需要引导项目使其相等
  • 下一步只使用元组作为糖来生成外集
  • 以及我们用来获得唯一值的最后一个集合

如果你想要相同类型的结果,你可以这样做:

[list(y) for y in set([tuple(set(x)) for x in gamma2])]

会给你

[[('r', 'w'), ('p', 'u')], [('p', 'w'), ('r', 'u')]]

相关内容

  • 没有找到相关文章

最新更新