Проблема с импортом itertools, говорящая, что itertools не определена

Спасибо всем, кто помог мне с этим вопросом. Я не опубликовал весь свой код, потому что решил, что строка «импортировать itertools» подразумевается, а остальные строки не имеют отношения к рассматриваемой проблеме. Я обнаружил, что в IDE, которую я использую, на самом деле есть кнопка для поиска и загрузки определенных пакетов. Без этого он не импортирует ни один пакет. Затем здесь был вложен второстепенный вопрос. А именно, как составить все 3 словосочетания без повторений. Эту проблему также решил пользователь 19077881. Большое спасибо. Я еще не совсем понимаю здесь правильный этикет. Я нахожусь на самой ранней стадии обучения. Поэтому я ценю все ваши отзывы, Anerdw. Я пытаюсь создать алгоритм, который будет возвращать все возможные комбинации из трех слов из существующего списка, содержащего 278 слов. Но я врезался в стену.

for i in range(1, len(lst)+1):
    words.append(i)
    els = [list(x) for x in itertools.combinations(lst, i)]
    words.append(els)

Когда я запускаю его, он продолжает говорить мне, что itertools не определен.

🤔 А знаете ли вы, что...
Python - это универсальный язык программирования.


58
1

Ответ:

Решено

С помощью itertools.combinations укажите размеры комбинаций (в вашем случае 3). Чтобы использовать простой пример:

import itertools

s = ['one', 'two', 'three', 'four', 'five']

result = list(itertools.combinations(s, 3))

print(result)

дает список кортежей с каждой комбинацией:

[('one', 'two', 'three'), ('one', 'two', 'four'), ('one', 'two', 'five'), ('one', 'three', 'four'), ('one', 'three', 'five'), ('one', 'four', 'five'), ('two', 'three', 'four'), ('two', 'three', 'five'), ('two', 'four', 'five'), ('three', 'four', 'five')]

или вы можете выполнить итерацию, чтобы получить каждый из них по очереди:

result = itertools.combinations(s, 3)

for combi in result:
    print(combi)