Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.59/37: Рейтинг темы: голосов - 37, средняя оценка - 4.59
PAVEL_USER
24 / 24 / 11
Регистрация: 28.12.2010
Сообщений: 139
1

Удаление повторяющихся элементов

21.01.2013, 14:03. Просмотров 6909. Ответов 3
Метки нет (Все метки)

Здравствуйте!

Имеется список прямоугольников (box) [(1, 2, 3, 4), (5, 6, 7, 8), ...]

Нужно убрать из этого списка те прямоугольники, которые полностью входят в большие по размеру прямоугольники из этого же списка.

Помогите реализовать данную процедуру элегантным способом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2013, 14:03
Ответы с готовыми решениями:

Удаление повторяющихся элементов
Имеется текст: ads.57-ads.57 ads.51-ads.48 ads.51-max2.K13 ads.50-ads.50...

Удаление из списка повторяющихся элементов
Здравствуйте! По заданию нужно считать из файла символы и посчитать...

Удаление из строки повторяющихся символов
Дана строка. Удалить из строки повторяющиеся символы. Например:...

Нахождение повторяющихся элементов в списке?
Нужно ввести список чисел и чтоб программа нашла, и вывела те числа которые...

Удаление элементов
Хочу написать сразу: Встроенные функции Python использовать нельзя! С...

3
FanOfGun
6 / 6 / 4
Регистрация: 13.10.2012
Сообщений: 101
26.01.2013, 19:30 2
Что за цифры? По две координаты или координата + размер?
0
PAVEL_USER
24 / 24 / 11
Регистрация: 28.12.2010
Сообщений: 139
28.01.2013, 01:39  [ТС] 3
Цитата Сообщение от FanOfGun Посмотреть сообщение
Что за цифры? По две координаты или координата + размер?
Это координаты. Но координаты можно легко преобразовать в размер.

Все, что я смог это выдавить из себя этот кусок кода:

1. Взять из массива элемент
2. Сравнить его с остальными элементами(прямоугольниками) массива
3. Если элемент полностью входит (IsRectInRect) в какой либо элемент массива, то обнулим его.
4. Если элемент не входит в ни в один элемент массива добавим его в результирующий список.
5. Вернуть результирующий список.


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def DeleteDuplicatedRects(self, rects):
    ret = []
 
    while len(rects) > 0:
        rect = rects.pop()
 
        for r in rects:
            if self.IsRectInRect(rect, r):
                rect = None
                break
 
        if rect:
            ret.append(rect)
 
    return ret
 
 
def IsRectInRect(self, rect1, rect2):
    return (rect1[0] >= rect2[0] and
            rect1[1] >= rect2[1] and
            rect1[2] <= rect2[2] and
            rect1[3] <= rect2[3])
Помогите исправить это безобразие, ведь можно проще, только я не вижу как...
0
FanOfGun
6 / 6 / 4
Регистрация: 13.10.2012
Сообщений: 101
28.01.2013, 09:33 4
Два списка, один оригинальный, во второй ложить все, что не входит в другие эл-ты. Потом первому списку присваивать второй.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2013, 09:33

Удаление элементов из списка
Всем привет! У меня проблема с удалением элементов из списка: не получается...

Удаление элементов из списка
Добрый день, сделал чтение из excel файла построчно import xlrd import os...

Обработка и удаление элементов списка
Помогите решить такую задачу: есть список, состоящий из вложенных списков....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru