我正在尝试以特定方式加入某些列表元素: 假设我有以下列表:
simpleline= [ 4 ]
otherline= [ 5, 7 ]
nextline=[ 1, 2 ]
我要生成以下列表:
middlelist=[ [ 4, 5 ] , [ 4, 7 ] ]
然后终于:
finallist=[ [ 4, 5, 1] , [4, 7, 1] , [ 4, 5, 2 ] , [ 4, 7, 2 ] ]
我尝试了一个循环中的第一个过程:
simpleline= [ 4 ]
otherline= [ 5, 7 ]
nextline=[ 1, 2 ]
middlelist=[]
for element in range(len(otherline)):
snap=simpleline[0].append(otherline[element])
middlelist.append(snap)
print middlelist
但这会导致错误:
AttributeError: 'int' object has no attribute 'append'
我非常感谢您
答案 0 :(得分:1)
为此,我将使用itertools.product
:
finallist = list(map(list, itertools.product(*[simpleline,otherline,nextline])))
>>> finallist
[[4, 5, 1], [4, 5, 2], [4, 7, 1], [4, 7, 2]]
如果您还需要middlelist
:
middlelist = list(map(list, itertools.product(*[simpleline,otherline])))
>>> middlelist
[[4, 5], [4, 7]]
答案 1 :(得分:0)
可以在此处使用列表理解,只需要串联最终列表即可
ref