Комбинации списка в Python

  1. Используйте функцию itertools.combinations() для поиска комбинаций списка в Python
  2. Используйте функцию itertools.combinations_with_replacement() для поиска комбинаций списка в Python
  3. Создайте определяемую пользователем функцию powerset() для поиска комбинаций списка в Python

Комбинация - это метод, который определяет количество возможных комбинаций в коллекции элементов. В комбинации элементов элементы выбираются в произвольном порядке.

В этом руководстве мы найдем общие комбинации элементов списка в Python.

Используйте функцию itertools.combinations() для поиска комбинаций списка в Python

Функция combinations(list_name, x) из модуля itertools принимает имя списка и число x в качестве параметров и возвращает список кортежей, каждый длиной x, содержащий все возможные комбинации одного элемента в список с другими элементами.

Например,

from itertools import combinations
A = [10, 5, 'Hi']
temp = combinations(A, 2)
for i in list(temp):
	print (i)

Выход:

(10, 5)
(10, 'Hi')
(5, 'Hi')

Отсортированный список выведет комбинированные кортежи в отсортированном порядке. Комбинирование одного элемента в списке с самим собой невозможно с помощью функции combinations().

Используйте функцию itertools.combinations_with_replacement() для поиска комбинаций списка в Python

Функция commands_with_replacement (list_name, x) из модуля itertools принимает имя списка и число x в качестве параметров и возвращает список кортежей, каждый длиной x, содержащий все возможные комбинации элементов списка. С помощью этой функции возможно сочетание одного элемента в списке с самим собой.

Например,

from itertools import combinations_with_replacement
A = [1, 5, 'Hi']
temp = combinations_with_replacement(A, 2)
for i in list(temp):
	print (i)

Выход:

(1, 1)
(1, 5)
(1, 'Hi')
(5, 5)
(5, 'Hi')
('Hi', 'Hi')

Создайте определяемую пользователем функцию powerset() для поиска комбинаций списка в Python

В математике набор мощности любого набора - это набор, который содержит все возможные подмножества данного набора вместе с пустым набором. Набор мощности набора S = {2, 5, 10}: {{}, {2}, {5}, {10}, {2, 5}, {2, 10}, {5, 10}, {2, 5, 10}}. Следующая функция powerset() используется для перебора всех длин r списка и вывода всех возможных комбинаций элементов списка.

Например,

from itertools import chain, combinations
def powerset(list_name):
    s = list(list_name)
    return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))

A = [60, 7, 'Hi']
for x in powerset(A):
    print(x)

Выход:

()
(1,)
(5,)
('Hi',)
(1, 5)
(1, 'Hi')
(5, 'Hi')
(1, 5, 'Hi')

Сопутствующая статья - Python List

  • В чем разница между списочными методами добавлять и расширять
  • Как преобразовать список в струну на Python
  • Как соединить два или несколько списков на Python
  • В чем разница между делом, удалением и попаданием в списки Pythonа