![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| amg |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
До кучи, вот такое решение (прямо скажем, через ж...)
Ну и немного измененное из Perl Cookbook (вдруг человеку эта книга недоступна)
Надо иметь в виду, что эти и некоторые другие решения не будут работать правильно, если массивы содержат неуникальные элементы. Исправить ситуацию можно так (опять же, из Cookbook):
|
||||||
|
|||||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
данный код тож не даст результат
@array = grep { ! $seen{$_} ++ } @array; з.ы.: первый - ужас ;) Это сообщение отредактировал(а) nitr - 15.9.2006, 10:08 |
|||
|
||||
| sharq |
|
||||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
Привет, любителям экспериментов!
Мой вариант:
Результат:
-------------------- [color=gray]There's More Than One Way To Do It[/color] |
||||
|
|||||
| amg |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Добавлено @ 10:49 Долго я ждал решения в одну строку. Наконец то! |
||||
|
|||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
а так?
Это сообщение отредактировал(а) nitr - 15.9.2006, 11:02 |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Работает!
А вот так - нет!
Это сообщение отредактировал(а) amg - 15.9.2006, 11:26 |
|||
|
||||
| nitr |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
а с ссылками так?
Добавлено @ 11:44 и код рабочий!
Добавлено @ 11:45 но он глупый |
||||||
|
|||||||
| meridian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 8.11.2005 Репутация: нет Всего: нет |
спасибо, нужно было действительно разницу массивов без 2-х foreach
будет ли код работать, если 1-й массив будет меньше 2-ого ? Это сообщение отредактировал(а) meridian - 15.9.2006, 12:01 |
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
вот лучше
|
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Ну да, рабочий, если @array1 > @array2, а вот если наоборот... Я придумал, как исправить:
|
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
строчку 6 в http://forum.vingrad.ru/index.php?showtopi...st&p=855508
можно так
|
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
||||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
amg, добавивь твои комменты
Добавлено @ 12:17 короче, не мучиемся ;) используем код sharq и учимся так же программить |
|||
|
||||
| Danissimo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 14.8.2006 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Можно так:
my @array1 = qw( a b c d i f ); my @array2 = qw( b d f ); my %x; @x{@array1} = (1) x @array1; delete @x{@array2}; print join ' ', sort keys %x; Добавлено @ 12:28 Выше была разность двух множеств. А вот их обединение: my @array1 = qw( a b c d i f ); my @array2 = qw( b d f ); my %x; @x{@array1} = (1) x @array1; @x{@array2} = (1) x @array2; print join ' ', sort keys %x; |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
||||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |