Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Andrey Sapozhnikov                   2:5020/400     31 Jan 2002  03:18:28
 To : vitus@ice.ru
 Subject : Re: Как из списка @list удалить скаляр $num
 -------------------------------------------------------------------------------- 
 
 
 <vitus@ice.ru> wrote in message news:a39fjk$fk4$3@host.talk.ru...
 
 > Andrey Titov <brandname@mtu-net.ru> wrote:
 > AT>Как из списка @list удалить скаляр $num?
 > AT>В perlfaq4 описывается только операция
 > AT>с двумя списками. Прямой перебор элементов
 > AT>кажется слишком долгой процедурой.
 >
 > Другого варианта все равно нет.
 >
 > @list= grep {$_ != $num}, @list;
 
 Почему же, есть. Использовать другие структуры данных.
 Если порядок следования элементов не важен (автор упомянул
 об этом), то возможно лучше хранить данные в хэше, где
 ключом будут те самые $num-ы, а значениями их количество.
 
 Тогда операция удаления приведется к delete $hash{$num}.
 После манипуляций подобный хэш легко преобразовать в
 список: @list = map { ($_) x $hash{$_} } keys %hash;
 
 Если и повторов не бывает, то все вырождается в еще более
 простой код:
 
 %hash = map { $_ => 1 } @list;
 delete $hash{$num};
 @list = keys %hash;
 
 Разумеется целесообразность этой операции зависит от того,
 каков размер массива и как много раз приходится удалять
 в нем элементы.
 
 Андрей
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Как из списка @list удалить скаляр $num   Andrey Titov   30 Jan 2002 21:35:48 
 Re: Как из списка @list удалить скаляр $num   Andrey Sapozhnikov   30 Jan 2002 22:00:27 
 Re: Как из списка @list удалить скаляр $num   Andrey Titov   30 Jan 2002 22:43:32 
 Как из списка @list удалить скаляр $num   kan   31 Jan 2002 11:34:13 
 Re: Как из списка @list удалить скаляр $num   Artem Chuprina   01 Feb 2002 13:02:11 
 Re: Как из списка @list удалить скаляр $num   Andrey Sapozhnikov   01 Feb 2002 16:06:30 
 Re: Как из списка @list удалить скаляр $num   Artem Chuprina   01 Feb 2002 17:18:39 
 Re: Как из списка @list удалить скаляр $num   Andrey Sapozhnikov   01 Feb 2002 20:17:26 
 Re: Как из списка @list удалить скаляр $num   Konstantin Stupnik   01 Feb 2002 14:12:12 
 Как из списка @list удалить скаляр $num   Aleksey Kotov   31 Jan 2002 17:47:39 
 Re: Как из списка @list удалить скаляр $num   Andrey Sapozhnikov   31 Jan 2002 20:01:19 
 Как из списка @list удалить скаляр $num   Aleksey Kotov   01 Feb 2002 00:24:10 
 Как из списка @list удалить скаляр $num   Ivan Frolcov   01 Feb 2002 20:37:24 
 Re: Как из списка @list удалить скаляр $num   Artem Chuprina   01 Feb 2002 20:33:50 
 Re: Как из списка @list удалить скаляр $num   vitus@ice.ru   01 Feb 2002 20:37:57 
 Re: Как из списка @list удалить скаляр $num   vitus@ice.ru   30 Jan 2002 22:55:51 
 Re: Как из списка @list удалить скаляр $num   Andrey Sapozhnikov   31 Jan 2002 03:18:28 
 Re: Как из списка @list удалить скаляр $num   Artem Chuprina   31 Jan 2002 12:26:01 
 Re: Как из списка @list удалить скаляр $num   Andrey Sapozhnikov   31 Jan 2002 17:37:14 
 Re: Как из списка @list удалить скаляр $num   Andrey Titov   01 Feb 2002 16:12:41 
 Как из списка @list удалить скаляр $num   Michael Savin   31 Jan 2002 04:51:33 
 Re: Как из списка @list удалить скаляр $num   Andrey Sapozhnikov   31 Jan 2002 02:57:57 
Архивное /ru.perl/65776850f79d.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional