Как сравнить два списка? - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как сравнить два списка?

Как сравнить два списка?

Ответ
Поиск в этой теме
Непрочитано 25.08.2013, 21:31
Как сравнить два списка?
mamuk
 
Сургут
Регистрация: 06.05.2010
Сообщений: 248

доброго времени суток!! подскажите как сравнить два списка вида '((10 . x y) (10 . x y) (10 . x y)....) и '((10 . x y z) (10 . x y z) (10 . x y z)....) при том два списка не равны по количеству содержимого. Задача найти одинаковые по значениям x и y и сформировать новый список в котором будут ( 10 . x y z)?
Просмотров: 7590
 
Непрочитано 19.10.2014, 20:55
#21
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 190
Отправить сообщение для nolte с помощью Skype™


ежли сравниваешь примитивы поищи "хеш сумма" - это сумма списка entget примитива.
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Непрочитано 19.10.2014, 22:20
#22
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Посмотри у Lee Mac'a еще функции :
List Box Functions
List Difference
List Intersection
List Symmetric Difference
List Union
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.10.2014, 23:03
#23
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Цитата:
Сообщение от nolte Посмотреть сообщение
ежли сравниваешь примитивы поищи "хеш сумма" - это сумма списка entget примитива.
nolte, нашел тему Lisp. Выделение нового в чертеже. С первого взгляда не понял, как определить такую сумму у отдельно взятого примитива, а разбираться и копать глубоко не охота... И есть подозрения, что это не самый быстродейственный вариант. Всё же списки обрабатывать, на мой взгляд, - менее ресурсоемкое занятие.
VVA, спасибо, Володь! В который раз выручаешь, когда уже не осталось надежд.
Я так понимаю, что из этих функций более всего подходят List Difference (если вернет ноль элементов, значит, списки равны) или List Intersection (если вернет все элементы одного списка, значит они равны). То, что надо.
skkkk вне форума  
 
Непрочитано 19.10.2014, 23:35
#24
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Дима_ Посмотреть сообщение
сравниваешь размеры, если равны берешь первый и проверяешь есть ли такой элемент во втором.
сначала нужно отсортировать примитивы, преобразовав в набор список. не факт, что в двух наборах одни и те же примитивы будут в том же порядке
gomer вне форума  
 
Непрочитано 19.10.2014, 23:48
#25
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


читай внимательней - проверяешь есть-ли такой во втором (то есть пробегаешься по всему списку до совпадения)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 19.10.2014, 23:56
#26
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Цитата:
Сообщение от gomer Посмотреть сообщение
не факт, что в двух наборах одни и те же примитивы будут в том же порядке
Я так понял, что Дима_ предлагает проверять второй список на наличие 1-го примитива первого списка, затем на наличие 2-го примитива первого списка и т.д. В таком случае порядок не важен.
А если отсортировать, то можно просто попарно сравнивать n-ные примитивы каждого списка.
В первом случае имеем nxn итераций, во втором - сортировку и просто n итераций. Правильно я понимаю?
Только вот как сортировать? vl-sort? Какую тогда брать тест-функцию? Или в лоб, acad_strlsort?
skkkk вне форума  
 
Непрочитано 19.10.2014, 23:57
#27
nolte

спринклеры, сантехника
 
Регистрация: 26.01.2010
Сообщений: 190
Отправить сообщение для nolte с помощью Skype™


Цитата:
С первого взгляда не понял, как определить такую сумму у отдельно взятого примитива, а разбираться и копать глубоко не охота... И есть подозрения, что это не самый быстродейственный вариант. Всё же списки обрабатывать, на мой взгляд, - менее ресурсоемкое занятие.
полностью поддерживаю, сразу видно, что способ будет заторможенным
__________________
Знание лисп: со справочником Н. Полещука
nolte вне форума  
 
Непрочитано 19.10.2014, 23:58
#28
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Пока писал, отвлекался, Дима_ сам ответил

----- добавлено через ~1 мин. -----
nolte, спасибо за участие
skkkk вне форума  
 
Непрочитано 20.10.2014, 02:04
#29
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Как вариант использовать связку ssmemb и ssdel. если рекурсивно, то быстродействие останется на втором плане
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как сравнить два списка?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать сортировку списка атрибутов блока Wertgan Программирование 11 30.04.2015 17:17
Сортирвка списка последовательно, по приоритетам (вопрос) Tonic Программирование 9 02.02.2010 14:25
структурированный список Holon Программирование 22 11.09.2007 14:09
Исключение элементов одного списка из другого по маске Кулик Алексей aka kpblc Программирование 3 18.09.2006 17:31
чтение данных из файла Александер Программирование 6 08.09.2005 10:24