Описание тега autovivification
Автовивификация означает неявное создание структур данных, доступ к которым осуществляется через имя при явном создании их данных, например инициализация хэша при назначении первой пары ключ / значение или создание папки при сохранении файла по новому пути.
2
ответа
perl автовивификация массива
Я читаю "нетерпеливый Perl" в Лондоне. Я тестирую пример из главы "Справочник". Мне интересно, почему при автовивификации ссылок мне нужно поместить число (любое число) в [], тогда как при объявлении массива я могу просто использовать [] в качестве …
19 июл '16 в 00:11
2
ответа
Таинственный ключ вышел из не где в Perl 5.14 хеш-таблица
Я использую хеш-таблицу в своем коде my %stat = (); # read files and do some initialization # like $stat{$key} = {k1=>v1, k2=>v2, k3=>v3}; # I have located the buggy code # I want to do something according to c1 and c2 parsed from each line…
15 мар '13 в 21:54
3
ответа
Вопрос оживления Perl при разыменовании неопределенной ссылки на массив
Мне трудно понять, почему работает следующее: my $array_reference; foreach $element (@{$array_reference}) { # some code } пока следующее не работает my $array_reference; if (scalar (@{$array_reference}) { # some code here } Я понимаю, что Perl оживл…
21 июн '11 в 02:08
4
ответа
Почему в этом случае работает автовификация Perl?
Может ли кто-нибудь помочь мне понять вывод этой Perl-программы: use Data::Dumper; my %hash; $hash{hello} = "foo"; $hash{hello}{world} = "bar"; print $hash{hello} . "\n"; print $hash{hello}{world} . "\n"; print Dumper(\%hash); И вывод: foo bar $VAR1…
18 ноя '09 в 22:07
2
ответа
Perl авто-вивификация по заданию
Действительно ли Perl автоматически оживляет ключ, когда несуществующий ключ назначается переменной? У меня есть этот код: my $variable = $self->{database}->{'my_key'}[0]; Переменная $self->{database}->{'my_key'}[0] не определено в моем …
01 мар '17 в 12:53
5
ответов
Как я могу проверить, существует ли ключ в глубоком хэше Perl?
Если я правильно понимаю, звоню if (exists $ref->{A}->{B}->{$key}) { ... } возникнет $ref->{A} а также $ref->{A}->{B} даже если они не существовали до if! Это кажется крайне нежелательным. Так как мне проверить, существует ли "глуб…
13 сен '10 в 11:45
1
ответ
Корректировка python autoviv для приращения "+=1"
Я использую некоторые общепринятые словари сборки кода для авививификации Python: class autoviv(dict): """Implementation of perl's autovivification feature.""" def __getitem__(self, item): try: return dict.__getitem__(self, item) except KeyError: va…
14 ноя '17 в 06:05
1
ответ
Почему perv autovivification не работает для ->@*, но ->@[0] работает?
Я могу получить значения путем нарезки: ($x, $y, $z) = $hash->{ key }->@[0,1,2] Почему я не могу написать? ($x, $y, $z) = $hash->{ key }->@* Для второго выражения в случаях, когда key не определено в хэше, я получаю ошибку: Не могу испол…
03 ноя '17 в 16:22
2
ответа
Рекурсивные определения в Python
Я просто наткнулся на следующий способ реализации AutoVivification в Python: from collections import defaultdict Tree = lambda: defaultdict(Tree) # common name by class, order, genus, and type-species common_name = Tree() common_name['Mammalia']['Pr…
22 янв '15 в 00:58
3
ответа
Специальные динамические вложенные словари, реализация автовивификации
Я пытаюсь реализовать вложенную структуру словаря определенным образом. Я читаю в длинном списке слов. Эти слова в конечном итоге нужно будет часто и эффективно искать, поэтому я хочу, чтобы мой словарь был настроен: Я пытаюсь создать вложенную слов…
07 дек '16 в 00:58
2
ответа
Как определить многомерный словарь со значением по умолчанию в Python?
Я хотел бы изменить следующее определение dict: class Vividict(dict): def __missing__(self, key): value = self[key] = type(self)() return value Чтобы иметь возможность использовать его следующим образом: totals[year][month] += amount
13 окт '16 в 13:57
4
ответа
Рубиновая автовивификация
Я пытался использовать автовивификацию в ruby, чтобы выполнить простую консолидацию записей по этому вопросу: 2009-08-21|09:30:01|A1|EGLE|Eagle Bulk Shpg|BUY|6000|5.03 2009-08-21|09:30:35|A2|JOYG|Joy Global Inc|BUY|4000|39.76 2009-08-21|09:30:35|A2|…
08 окт '09 в 23:08
9
ответов
Python: Как обновить значение пары ключ-значение во вложенном словаре?
Я пытаюсь создать обратный индекс документа, поэтому мне нужно знать из всех уникальных слов в коллекции, в каком документе они встречаются и как часто. Я использовал этот ответ для второго порядка создания вложенного словаря. Предоставленное решени…
22 фев '11 в 15:00
1
ответ
Не удается найти autovivification.pm в @INC
Я получаю следующую ошибку при запуске скрипта Perl: "Не могу найти autovivification.pm в @INC" Как я могу установить этот модуль в моей системе?
03 ноя '13 в 11:51
4
ответа
Как создать вложенные словари с дублирующимися ключами в python
Я хочу создать структуру данных с вложенными словарями и дубликатами ключей. Подробный пример: data['State1']['Landon']['abc Area'] = 'BOB' data['State1']['Landon']['abc Area'] = 'SAM' data['State1']['Landon']['xyz Area'] = 'John' data['State2']['Ne…
22 мар '16 в 12:36
1
ответ
Обновите словарь Python с произвольно длинным списком значений
У меня есть рабочая проблема, в которой мне нужно было иметь возможность обновлять значения в словаре из произвольно длинного списка ключей. И список ключей, и словарь генерируются из одних и тех же данных во время выполнения, но я не знаю, сколько …
07 окт '15 в 04:52
1
ответ
Ошибка компиляции Perl CGI в autovivication.pm
Я использую скрипт perl cgi, который использует наши собственные библиотеки, которые используют прагму "no autovivification". Например /usr/lib/company/mysim.cgi: #!/usr/bin/perl -w use strict; # ... other use use Company::Module1; /usr/lib/perl5/Co…
04 дек '15 в 16:09
1
ответ
Как я могу получить доступ к глубоко вложенному словарю, используя кортежи?
Я хотел бы расширить пример автовивификации, приведенный в предыдущем ответе от nosklo, чтобы разрешить доступ к словарю по кортежу. Решение nosklo выглядит так: class AutoVivification(dict): """Implementation of perl's autovivification feature.""" …
25 фев '13 в 22:44
2
ответа
Есть ли автовификация для Go?
Есть ли автовификация для Go? Как правильно заметил @JimB, мое определение не столь строгое. О моей цели: в Python у нас есть очень элегантная "эмуляция" для автовивификации: class Path(dict): def __missing__(self, key): value = self[key] = type(sel…
30 дек '16 в 16:11
5
ответов
Как отключить автовивификацию в Perl?
Предположим, у вас есть ОГРОМНОЕ приложение, "разработанное";) большой командой. Вот упрощенная модель потенциальной катастрофы, которая может произойти, когда кто-то слишком глубоко проверяет структуру данных. Если невозможно полностью или автомати…
26 апр '09 в 09:00