2015-06-03 3 views

ответ

5

Вы можете использовать itertools.product, чтобы получить декартово произведение двух списков и присоединиться к ним, как это

>>> l2, l1 = ['_ru', '_uk', '_en'], ['1','2','3'] 
>>> from itertools import product 
>>> ["".join(items) for items in product(l1, l2)] 
['1_ru', '1_uk', '1_en', '2_ru', '2_uk', '2_en', '3_ru', '3_uk', '3_en'] 

Или в одной строке, с списком понимания

>>> ["{}{}".format(i1, i2) for i1 in l1 for i2 in l2] 
['1_ru', '1_uk', '1_en', '2_ru', '2_uk', '2_en', '3_ru', '3_uk', '3_en'] 

Это в основном так же, как итерирование второго списка для каждого элемента в первом списке и накопление результата, например,

>>> result = [] 
>>> for i1 in l1: 
...  for i2 in l2: 
...   result.append("{}{}".format(i1, i2)) 
>>> result 
['1_ru', '1_uk', '1_en', '2_ru', '2_uk', '2_en', '3_ru', '3_uk', '3_en'] 
Смежные вопросы