#python #list
#python #Список
Вопрос:
Скажем, я вставил:
["abc", "def"]
это дало бы мне:
["ad","ae","af","bd","be","bf","cd","ce","cf"]
Код, который я использовал:
combs = [""]
conv = {"2":"abc","3":"def","4":"ghi","5":"jkl","6":"mno","7":"qprs","8":"tuv","9":"vxyz"}
for digit in "23":
for comb in combs:
for loop in range(len(conv.get(digit))):
combs.append(digit)
Но этот код создает бесконечный цикл
Комментарии:
1. Взгляните на
itertools.product
2. предоставьте свой код для проверки
3. @Barmer Да, в решении, опубликованном Burning Alcohol, использовался itertools.product, я не знал, что у itertools есть функция для решения такой проблемы
4. @sourab maity Я отредактировал в своем коде
Ответ №1:
import itertools
a = ["abc", "def", "hk"]
b = ["".join(s) for s in itertools.product(*a)]
print(b)
вывод: ['adh', 'adk', 'aeh', 'aek', 'afh', 'afk', 'bdh', 'bdk', 'beh', 'bek', 'bfh', 'bfk', 'cdh', 'cdk', 'ceh', 'cek', 'cfh', 'cfk']
Ответ №2:
from itertools import product
a = product('abc','def')
print(list(a))
Комментарии:
1. это выведет список кортежей