如何在python中使用iter删除某些区域

时间:2018-10-09 19:46:42

标签: java python

在Java中,有iter.remove()方法。
当我在LinkedList中进行迭代时删除时,它具有时间复杂性的优点。

考试代码:

    B = [[4,1],[4,2]]
    list = [[1,2,3,4,5] , ... , [5,2,3,5,2]]
    for(int i = 0; i < l; i++) {
        for(Iterator<List<Integer>> iter = list.iterator(); iter.hasNext();) {
            List<Integer> out = iter.next();
            if(Math.min(out.get(0), out.get(2)) <= B[i][0] && B[i][0] <= Math.max(out.get(0), out.get(2))) {
                iter.remove();
                if(max < out.get(4)) {
                    max = out.get(4);
                }
            }
        }
        System.out.println(max);
    }

在此代码中,时间复杂度为O(n)。因为它是链表并且在删除时使用迭代器

所以我想在python中实现此代码。但我在python中找不到iter.remove()。只能使用FP,双端队列(也需要花费n ^ 2的时间)和list.remove(value) ..才能在python中实现吗?

1 个答案:

答案 0 :(得分:0)

FWIW,Python的deque.remove()和list.remove()均为O(n)。