Так значительно понятнее. Все равно программная реализация невозможна из за нечеткости постановки. А уточнение затруднено тем что непонятно какие действия вы хотите предпринять. Вы выравниваете число товаров по складам?
У вас путаются реальность - склады и виртуальность - массивы.
izooomrud
Как бы с применением mysql это не сложно сделать, но можно ли одними массивами?
Тут непонятно. Это утверждение что на mysql не сложно или вопрос? По поводу массивов тоже вы о чем? у вас там исключительно словари.
Попробую сформулировать.
Имеется N складов (ни один программист в здравом уме не будет фиксировать число складов).
На них имеются товары с заданным строкой - именем, количество которых характеризуется плавающим числом. (заметьте никакой однотипности строка совпала или нет)
Найти имена товаров, максимальное количество которых на складах отличается от минимального не более чем на заданную долю от их среднего значения на складах.
from collections import defaultdict
delta =0.01
# имен складов нет - они не нужны для решения задачи
# на каждом складе надо перечислить все товары
sckladList =[{"a":5.5,"b":3,"c":0.},{"a":5.5,"b":8.,"c":4.}]
# формируем списки количеств товаров на складах
amo=defaultdict(list)
for scklad in sckladList:
for k,v in scklad.items():
amo[k].append(v)
# выбираем имена товаров удовлетворяющих условию
out = [k for k,v in amo.items() if 1-delta < (max(v)-min(v))/mean(v) < 1+delta]
Я не проверял, могут быть ошибки но идея думаю ясна.
Не думаю что на SQL будет проще. по сути там тоже самое получится.