8.2.9. Выборка пар ключ-значение по заданному критерию

8.2.9. Выборка пар ключ-значение по заданному критерию

К классу Hash подмешан модуль Enumerable, поэтому можно обращаться к методам detect (find), select (find_all), grep, min, max и reject (как и для массивов).

Метод detect (синоним find) находит одну пару ключ-значение. Он принимает блок (которому передается по одной паре за раз) и возвращает первую пару, для которой вычисление блока дает true.

names = {"fred"=>"jones","jane"=>"tucker", "joe"=>"tucker","mary"=>"SMITH"}

# Найти tucker.

names.detect {|k,v| v=="tucker" } # ["joe","tucker"]

# Найти имена, записанные прописными буквами.

names.find {|k,v| v==v.upcase }   # ["mary", "SMITH"]

Разумеется, объекты в хэше могут быть сколь угодно сложными, как и условие, проверяемое в блоке, но сравнение объектов разных типов может оказаться проблематичным.

Метод select (синоним find_all) возвращает все пары, удовлетворяющие условию, а не только первую:

names.select {|k,v| v=="tucker" }

# [["joe", "tucker"], ["jane", "tucker"]]

names.find_all (|k,v| k.count("r")>0}

# [["mary", "SMITH"], ["fred", "jones"]]

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Доверие: ключ к обману

Из книги Искусство обмана автора Митник Кевин

Доверие: ключ к обману Чем естественней социальный инженер общается с жертвой, тем больше он ослабляет подозрение. Когда у людей нет причины для подозрений, социальному инженеру становится легко приобрести доверие жертвы.Как только он получает ваше доверие, разводной


4.4.5. Выборка пространственных данных

Из книги MySQL: руководство профессионала автора Паутов Алексей В

4.4.5. Выборка пространственных данных Значения геометрии, сохраненные в таблице, могут быть выбраны во внутреннем формате. Вы можете также преобразовывать их в формат WKT или WKB.Выборка пространственных данных во внутреннем формате:Выборка геометрии с использованием


3.14.2. Сопоставление с парой «ключ-значение»

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

3.14.2. Сопоставление с парой «ключ-значение» Иногда приходится работать со строками вида «ключ=значение» (например, при разборе конфигурационного файла приложения).Следующий код извлекает ключ и значение. Предполагается, что ключ состоит из одного слова, значение


8.1.6. Выборка из массива по заданному критерию

Из книги Цифровая фотография без Photoshop автора Газаров Артур Юрьевич

8.1.6. Выборка из массива по заданному критерию Иногда нужно найти в массиве один или несколько элементов так, как будто мы опрашиваем таблицу в базе данных. Для этого есть несколько способов; рассмотренные ниже реализованы в подмешанном модуле Enumerable.Метод detect находит не


8.2.3. Доступ к парам ключ-значение и добавление новых пар

Из книги VBA для чайников автора Каммингс Стив

8.2.3. Доступ к парам ключ-значение и добавление новых пар В классе Hash есть методы класса [] и []=. Используются они почти так же, как одноименные методы в классе Array, но принимают лишь один параметр. В качестве параметра может выступать любой объект, а не только строка (хотя


8.2.4. Удаление пар ключ-значение

Из книги Первые шаги с Windows 7. Руководство для начинающих автора Колисниченко Денис Н.

8.2.4. Удаление пар ключ-значение Удалить пары ключ-значение из хэша можно с помощью методов clear, delete, delete_if, reject, reject! и shift.Метод clear удаляет из хэша все пары. Эффект такой же, как от присваивания переменной нового пустого хэша, но работает чуть быстрее.Метод shift удаляет


«Высокий ключ»

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

«Высокий ключ» High key, или «высокий ключ», – это фотография в светлой тональности, выполненная в светло-белесых тонах, когда контуры и очертания объектов будто растворяются в светлом сиянии – ярком белом свете. У зрителя создается впечатление, что все в кадре заполняет


«Низкий ключ»

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

«Низкий ключ» Low key – «низкий ключ» – техника съемки, которая используется для получения фотографии с преобладанием темных тонов (рис. 10.4). На снимке будут иметь место абсолютно черные участки, а также резкие тени. Вам нужно добиться, чтобы фон получился совершенно черным,


Номер - это ключ.

Из книги Справка по SQL автора

Номер - это ключ. После того как файл открыт для доступа VBA, обращение к нему осуществляется по номеру, а не по имени. Если приходится работать с несколькими файлами одновременно, отслеживать то, какой файл вам необходим в данный момент, совсем не просто. В принципе, никто не


2.5.6. Ключ продукта

Из книги iOS. Приемы программирования автора Нахавандипур Вандад

2.5.6. Ключ продукта А теперь самое интересное: нужно ввести ключ продукта (рис. 2.15). Заметьте: ключ вводится уже после установки системы. Поэтому если вы выбрали выпуск Windows, не соответствующий имеющемуся ключу, установить Windows не получится. А для смены выпуска нужно


Интерактивная выборка

Из книги автора

Интерактивная выборка Интерактивные временные ряды деятельности по блокировкам генерируются, когда fb_iock_print выполняется с переключателем -i для измерения производительности Менеджера блокировок. Это моделирует UNIX-утилиту sar (System Activity Reporter, построитель отчетов системной


11.1.8. Сортировка по заданному полю

Из книги автора

11.1.8. Сортировка по заданному полю В следующем примере файл сортируется по кодам фирм–дистрибьюторов. Поскольку требуемая информация находится во втором поле (ключ сортировки 1(, следует указать опцию +1. Кроме того, необходимо задать разделитель полей с помощью опции -t:,


16.9. Выборка данных в фоновом режиме

Из книги автора

16.9. Выборка данных в фоновом режиме Постановка задачи Требуется выполнять операции выборки данных в стеке Core Data, причем только в фоновом режиме. Это отличная возможность создать по-настоящему отзывчивый пользовательский