Книга: Программирование на языке Ruby
8.2.13. Вычисление разности и пересечения хэшей
8.2.13. Вычисление разности и пересечения хэшей
Ключи хэша можно скопировать в отдельный массив, а к получившимся из разных хэшей массивам применить методы &
и -
класса Array
. Результатом являются пересечение и разность множеств ключей. Соответствующие им значения можно получить с помощью метода each
, примененного к хэшу, содержащему все образованные таким способом ключи.
а = {"а"=>1,"b"=>2,"z"=>3}
b = {"x"=>99,"у"=>88,"z"=>77}
intersection = a.keys & b.keys
difference = a.keys - b.keys
с = a.dup.update(b)
inter = {}
intersection.each {|k| inter[k]=c[k] }
# inter равно {"z"=>77}
diff={}
difference.each {|k| diff[k]=c[k] }
# diff равно {"а"=>1, "b"=>2}
Оглавление статьи/книги
- 8.2.1. Создание нового хэша
- 8.2.2. Указание значения по умолчанию для хэша
- 8.2.3. Доступ к парам ключ-значение и добавление новых пар
- 8.2.4. Удаление пар ключ-значение
- 8.2.5. Обход хэша
- 8.2.6. Инвертирование хэша
- 8.2.7. Поиск ключей и значений в хэше
- 8.2.8. Копирование хэша в массив
- 8.2.9. Выборка пар ключ-значение по заданному критерию
- 8.2.10. Сортировка хэша
- 8.2.11. Объединение двух хэшей
- 8.2.12. Создание хэша из массива
- 8.2.13. Вычисление разности и пересечения хэшей
- 8.2.14. Хэш как разреженная матрица
- 8.2.15. Реализация хэша с повторяющимися ключами
Похожие страницы
- 1. Операции объединения, пересечения, разности
- 2. Операция пересечения.
- 3. Операция разности.
- Глава 2 Вычисление
- Листинг 4.4. (primes.с) Вычисление простых чисел в потоке
- Вычисление размера кэша
- Вычисление приоритетов и квантов времени
- О целесообразности привлечения функций стандартной библиотеки C для обработки файлов
- 4.12. Вычисление выражений
- Вычисление номеров
- 4. Вычисление радиуса Земли
- 5.21. Численное вычисление определенного интеграла