Как сгенерировать следующий список списков из чисел? В общем такая ситуация.
Есть список чисел, допустим:five_group = [3, 5, 13, 18, 20]
Нужно сгенерировать список всех комбинаций 5 чисел из 25, в каждой из которых присутствует хотя бы одно из чисел с five_group.
В итоге должен получиться список типа такого:LIST = [[1, 2, 3, 4, 5], [1, 2, 3, 4, 6], ........................., [20, 22, 23, 24, 25]]
Я могу сгенерировать список списков из всех комбинаций с помощьюCOMBINATIONS = [list(i) for i in itertools.combinations(range(1, 26), 5)]
Но как из него убрать комбинации в которых нет чисел из five_group?

21 Авг 2019 в 06:10
105 +1
0
Ответы
1

Вы можете использовать функцию filter() для отфильтровывания комбинаций, в которых отсутствуют числа из five_group. Вот пример кода:

import itertools
five_group = [3, 5, 13, 18, 20]
COMBINATIONS = [list(i) for i in itertools.combinations(range(1, 26), 5)]
filtered_combinations = list(filter(lambda x: any(num in five_group for num in x), COMBINATIONS))
print(filtered_combinations)

Этот код создаст список filtered_combinations, в котором будут только те комбинации, в которых есть хотя бы одно число из five_group.

20 Апр 2024 в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир