微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Itertools 组合复制和删除

如何解决Itertools 组合复制和删除

假设我们有一个简单的列表,例如 a = [obj_1,obj_2,obj_3,obj_4]。 其中 obj_1 是基于 from shapely.geometry import polygon自定义对象 现在我们想要获得所有组合的列表。

from itertools import combinations
combs = combintations(a,2)

到目前为止工作正常。在接下来的步骤中,我们要遍历所有组合并返回所有对象的列表,其中不包含属于 combination 的对象。

for combination in combs:
    if combination is correct: # pseudo
        #return a list of all unique objects (obj_x),which doesn't contain combination

我试图跟踪组合在梳子中的位置,但得到了 the TypeError: 'itertools.combinations' object is not subscriptable

我还在 itertools 文档中查找了删除函数,但没有找到任何有用的东西。

任何想法都值得赞赏。提前致谢

附注: 例如列表a = [obj_1,obj_4],如果combination = (obj_1,obj_3)是正确的,需要作为[obj_2,obj_4]

返回

解决方法

迭代 combs,如果元素组合正确,则从 a 中删除它们。

correct_obj = []
for o1,o2 in combs:
    if (o1,o2) is correct:
        if o1 in a:
            a.remove(o1)
        if o2 in a:
            a.remove(o2)

这假设对象是可散列的,因此可以将它们放入一个集合中。如果没有,则将其设为普通列表。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?