例如:
list1=['a','b']
list2 = [['apple', 'pineapple'], ['orange', 'grapes']]
我希望得到类似的内容:
[ ['a', 'apple'], ['a', 'pineapple'], ['b', 'orange'],, ['b', 'grapes'] ]
我试过[[i1, i2] for i1, i2 in itertools.izip(list1, list2)]
,但这会给我以下内容:
[ ['a',['apple', 'pineapple'], ['b', ['orange', 'grapes']] ]
我知道为什么它是错的,因为i2是列表类型的元素,但我不知道如何在几次尝试失败后以更加pythonic的方式解决这个问题。我绝对可以逐行迭代并使用for循环和append()
。
答案 0 :(得分:3)
你需要一个嵌套的理解来解开内部列表项:
>>> [[i, x] for i, j in zip(list1, list2) for x in j]
[['a', 'apple'], ['a', 'pineapple'], ['b', 'orange'], ['b', 'grapes']]
答案 1 :(得分:1)
没有itertools
final = []
for i,k in enumerate(list1):
for j in list2[i]:
final.append([k,j])
print final
[['a', 'apple'], ['a', 'pineapple'], ['b', 'orange'], ['b', 'grapes']]
一个班轮:
[[k,j] for j in list2[i] for i,k in enumerate(list1)]