python - 当子列表的顺序无关紧要时,从列表列表中获取唯一元素

标签 python list loops iterator

我有一个对列表,代表图中簇的所有边。实际上这个列表比这个还要大。这只是一个例子。

[[1, 2], [2, 1], [3, 5], [6, 3], [3, 6]]

[1, 2] 表示节点 1 和 2 之间的边,[2, 1] 也是如此。 因此,我很难消除重复的对来计算簇的入度。

输出应类似于 [[1, 2], [3, 5], [3, 6]][[2, 1], [3, 5] , [6, 3]]

最佳答案

如果对元素的顺序不相关,则使用 sorted 来标准化对。然后,使用set消除重复项。

lst = [1, 2], [2, 1], [3, 5], [6, 3], [3, 6]

unique_pairs = {tuple(sorted(p)) for p in lst} # {(1, 2), (3, 6), (3, 5)}

关于python - 当子列表的顺序无关紧要时,从列表列表中获取唯一元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50769558/

相关文章:

python - 如何读取包含列的文本文件

python - 如何通过 Django 中的 AJAX 请求传递数据?

grails createCriteria 如何循环限制

c++ - 是否需要 "do {...} while ( )"循环?

python - 如何从列表列表中获取跨多个列表的项目子序列?

java - 循环中分数的加法

python - 是否可以在 Flask 和 Python 3 中使用 websockets?

python - 在线程中打印不适用于python 3

c# - 如何删除添加到列表中的最后一个元素?

python - 在 Python 中合并两个列表