【问题标题】:Reduce to combination of list in items of tuples减少到元组项中列表的组合
【发布时间】:2023-03-14 19:18:01
【问题描述】:

我有元组列表,我想学习新的,我想知道如何从这个元组列表中优雅地整理项目并删除所有重复项,就像重复项 (6, 1) 和 (1, 6) 一样彼此相等。所以我需要最少的组合。

lst = [(1, 1), (4, 1), (1, 4), (3, 1), (1, 3), (9, 1), (1, 9), (6, 1), (1, 6), (5, 1), (1, 5)]

我试过了:

res = set([tuple(sorted(list(x))) for x in lst])

它确实有效,但它是某种意大利面条式编程。还有更优雅的方式吗?

【问题讨论】:

  • 我不明白你想要达到什么目的。你能显示预期的输出吗?
  • 如果要缩短代码,我认为这个sn-p可以达到同样的效果:set([tuple(sorted(x)) for x in lst])

标签: python list filter tuples combinations


【解决方案1】:

有时没有“优雅”的方式......但下面的示例重现了相同的结果,但使用了 lambda。

set(map(lambda element: tuple(sorted(element)), lst))

{(1, 3), (1, 4), (1, 5), (1, 6), (1, 9), (1, 1)}

【讨论】:

    猜你喜欢
    • 2014-07-01
    • 2014-12-04
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 2017-09-11
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多