найти все комбинации сущностей из разных списков:
combinations_gen = itertools.product(
*[
[None, *concrete_accs_list]
for concrete_accs_list in drink_structure.accessories
],
)
хорошо, справились
совершенно все комбинации есть, даже учитывая, что сущность может где-то отсутствовать вовсе
генерим все комбинации, и оказывается, что шанс выпадения сущностей очень большой (вместо их отсутствия), т.е. рандомно полученные комбинации из списка всех комбинаций получаются слишком насыщенные этими сущностями
ладно, разбавим добавлением ещё n-го количества None в генератор, а после получения рандомных будем отсеивать неуникальные
combinations_gen = itertools.product(
*[
[*[None] * len(concrete_accs_list), *concrete_accs_list]
for concrete_accs_list in drink_structure.accessories
],
)
количество комбинаций с отсутствующими сущностями увеличится (возрастёт шанс их выпадения), но (!):
комбинаций станет слишком много и будут дублироваться в БД (сейчас 35М, 10гб, и это только 2/15)
Пишу в БД, т.к. питон в памяти уже не вывозит такой списочек
собственно сам вопрос:
каким другим образом можно разбавить исходные комбинации, чтоб в них реже попадались эти сущности?
вероятность из рандома берётся я беру рандомные комбинации из пула всех получившихся
Обсуждают сегодня