1 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
您嘗試使用的方式似乎存在誤解zip。
zip(list1, list2)是一個(gè)迭代器。當(dāng)您對(duì)其進(jìn)行迭代時(shí),您會(huì)得到元組:第一個(gè)由 的第一項(xiàng)list1和 的第一項(xiàng)組成list2,依此類推。
您在這里要做的是將 的zip(lst, lst_of_lst)每個(gè)元素lst與 的相應(yīng)子列表配對(duì)lst_of_lst。從每一對(duì)中,您可以生成所需的輸出。
您可以使用列表理解來做到這一點(diǎn):
lst = ['A', 'A', 'B', 'C', 'C', 'D', 'D', 'D',]
lst_of_lst = [[9, 10, 11, 12],
[54, 55, 56],
[72, 73, 74, 75, 76],
[1, 2, 3, 4, 5],
[98, 99, 100],
[13, 14],
[21, 22, 23],
[27, 28, 29, 30],]
out = [(item1, item2) for item1, sublist in zip(lst, lst_of_lst) for item2 in sublist]
print(out)
# [('A', 9), ('A', 10), ('A', 11), ('A', 12), ('A', 54), ('A', 55), ('A', 56),
# ('B', 72), ('B', 73), ('B', 74), ('B', 75), ('B', 76), ('C', 1), ('C', 2), ('C', 3), ('C', 4), ('C', 5),
# ('C', 98), ('C', 99), ('C', 100), ('D', 13), ('D', 14), ('D', 21), ('D', 22), ('D', 23),
# ('D', 27), ('D', 28), ('D', 29), ('D', 30)]
或者,用循環(huán)編寫,正如您所嘗試的:
out = []
for item1, sublist in zip(lst, lst_of_lst):
for item2 in sublist:
out.append((item1, item2))
添加回答
舉報(bào)