Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсчитать частоту упоминания в массиве? Создать хеш хешей частоты упоминаний 
:(
    Опции темы
Suppir
Дата 13.9.2010, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

Репутация: нет
Всего: нет



Есть массив данных вида (несколько миллионов строк):

aaa = 1
aaa = 1
aaa = 2

bbb = 5
bbb = 5
bbb = 7
bbb = 8

ccc = 10
ccc = 10
ccc = 1



Необходимо создать хеш хешей:

$hash{'aaa'}{'1'}=2
$hash{'aaa'}{'2'}=1

$hash{'bbb'}{'5'}=2
$hash{'bbb'}{'7'}=1
$hash{'bbb'}{'8'}=1

$hash{'ccc'}{'10'}=2
$hash{'ccc'}{'1'}=1

Каким образом сделать быстрее всего? Спасибо
PM MAIL   Вверх
Logo
Дата 13.9.2010, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 3
Всего: 10



Быстрее по производителности? Тогда обойти массив через for.
PM MAIL   Вверх
dva300
Дата 15.9.2010, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2010
Где: Москва

Репутация: -1
Всего: 1



Цитата

Есть массив данных вида (несколько миллионов строк):


я так понимаю эту фразу не нужно понимать буквально ? 
т.е. массив данных это файл ? 

Цитата

use strict;
my %hash;
while(<>)
{
    chomp; 
    if ($_ ne "")
    {
  my ($v1,$v2) = split/=/,$_;
  $v1 =~ s/\s+$//g;
  $v2 =~ s/^\s+//g;
  $hash{$v1}{$v2}++;    
    }
}

--------------------
Участник движения Культура Вождения
PM   Вверх
Suppir
Дата 16.9.2010, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

Репутация: нет
Всего: нет



dva300, насчет количества - да, несколько миллионов. Файл чуть больше 100 Мб.

PM MAIL   Вверх
dva300
Дата 16.9.2010, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2010
Где: Москва

Репутация: -1
Всего: 1



Цитата

dva300, насчет количества - да, несколько миллионов. Файл чуть больше 100 Мб.


вариант создания интересующей вас структуры я привел выше.
что конкретно вы собираетесь делать с данной структурой мне не известно. 
если это есть подсчет элементов, максимум, минумум, сумма то структура вам не нежна.
 
--------------------
Участник движения Культура Вождения
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0899 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.