(Я уверен, что на это где-то был дан ответ, но я действительно не мог найти правильный вопрос. Возможно, я не знаю правильный глагол для этого упражнения?)
У меня есть два списка:
prefix = ['A', 'B', 'C']
suffix = ['a', 'b']
И я хочу получить это:
output = ['A a', 'A b', 'B a', 'B b', 'C a', 'C b']
Мне известен метод zip
, который останавливается на самой короткой длине среди списков, к которым присоединяются:
output_wrong = [p+' '+s for p,s in zip(prefix,suffix)]
Так какой же самый питонский способ сделать это?
EDIT:
Хотя большинство ответов предпочитают itertools.product
, я вместо этого предпочитаю следующее:
output = [i + ' ' + j for i in prefix for j in suffix]
поскольку он не вводит новый пакет, каким бы базовым он ни был (хорошо, я не знаю, какой путь быстрее, и это может быть вопросом личных предпочтений).