Python 如何以简单的方式实现此列表

Python 如何以简单的方式实现此列表,python,list,Python,List,使用python2.7,我想生成一个新列表,输入/输出如下。想做一个简单的方法来做这件事 输入: l1=['1','2'] l2=['a','b','c','d'] l3=['x','y','z'] #预期产出: [1ax'、'1bx'、'1cx'、'2dx'、'1ay'、'1by'、'1cy'、'2dy'、…] 使用以下代码: l1=['1','2'] l2=['a','b','c','d'] l3=['x','y','z'] 最终_arr=列表() 对于l1中的i: 对于l2中的j: 对于l

使用python2.7,我想生成一个新列表,输入/输出如下。想做一个简单的方法来做这件事

输入:

l1=['1','2']
l2=['a','b','c','d']
l3=['x','y','z']
#预期产出:
[1ax'、'1bx'、'1cx'、'2dx'、'1ay'、'1by'、'1cy'、'2dy'、…]
使用以下代码:

l1=['1','2']
l2=['a','b','c','d']
l3=['x','y','z']
最终_arr=列表()
对于l1中的i:
对于l2中的j:
对于l3中的k:
最后的数组追加({}{}{}格式(i,j,k))
打印(最终报告)
[1ax',1ay',1az',1bx',1by',1bz',1cx',1cy',1cz',1dx',1dy',1dz',2ax',2ay',2az',2bx',2by',
‘2bz’、‘2cx’、‘2cy’、‘2cz’、‘2dx’、‘2dy’、‘2dz’]

您可以进一步更改乘数,但这将使您得到偶数:

from functools import reduce
import operator
l1=['1','2'] 
l2=['a','b','c','d']
l3=['x','y','z']

newlist=[] 
for item in zip(l1*6,l2*3,l3*4): 
   newlist.append(reduce(operator.add, item)) 

newlist 
#['1ax', '2by', '1cz', '2dx', '1ay', '2bz', '1cx', '2dy', '1az', '2bx', '1cy', '2dz']


我无法理解这里的情况!!只需使用输入l1、l2、l3生成新列表,如:['1ax'、'1bx'、'1cx'、'2dx'、'1ay'、'1by'、'1cy'、'2dy'、…]使用简单的方法……为什么预期输出中没有'1dx'或'2ax'?规则是什么还不清楚。你想生产笛卡尔积吗?1dx或2ax不应该在那里……所以完整的列表应该是
['1ax'、'1bx'、'1cx'、'2dx'、'1ay'、'1by'、'1cy'、'2dy'、'1az'、'1bz'、'1cz'、'2z']
?还是还有更多?