作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想创建一组元组,其中元组的顺序无关紧要。例如-如果我要添加的元组是:
[(1,2),(1,3),(2,1)]
应该这样输出:
{(1,2),(1,3)}
在 python 中有什么有效的方法吗?
最佳答案
可以先应用sorted
,再应用tuple
,再转换成set
:
res = set(map(tuple, map(sorted, L)))
print(res)
{(1, 2), (1, 3)}
说明
您不应该将每个元组转换为 set
作为初始步骤有几个很好的理由:
(1, 1, 2)
和 (1, 2)
将在转换为 set
后变得相等。tuple({(1, 2)})
和 tuple({(2, 1)})
是相等的。虽然这可能是真的,但它会被认为是一个实现细节,因为 set
被认为是无序的。函数构成
函数组合不是 Python 原生的,但如果您可以访问第 3 方 toolz
可以避免嵌套 map
的库:
from toolz import compose
tup_sort = compose(tuple, sorted)
res = set(map(tup_sort, L))
关于python - 制作一组元组的有效方法,其中元组的顺序无关紧要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51081841/
我特别从那些IBM/联想、惠普、戴尔(也许)制造的“商务”笔记本电脑的倡导者那里听到“商务用户不需要高质量的屏幕”。他们坚持使用最糟糕的液晶显示器(即使分辨率很高)并且敢于出售那些垃圾。您甚至无法区分
我被这个问题困了两天了,还是没搞定。 基本上,我有一个二维数组,其中包含某些数字(在给定范围内)之间的关系: 0 = 顺序无关紧要 1 = 第一个数字(左栏中的数字)应该是第一个 2 = 第二个数字(
我是一名优秀的程序员,十分优秀!