将元素列表转换为元组列表以匹配另一个元组列表的结构

Uba*_*eri 0 python

假设我有以下列表

L = [("a0","a1"),("b0",),("b1","a1","b0"),("a0","a1"),("b0",)]
M = ["u0", "u1", "u2", "u3", "u4", "u5", "u6", "u7" , "u8"]
Run Code Online (Sandbox Code Playgroud)

我想将 的元素分组M到一个元组列表中,N使其N具有相同的结构L,即

N = [("u0", "u1"), ("u2",), ("u3", "u4", "u5"), ("u6", "u7") , ("u8",)]
Run Code Online (Sandbox Code Playgroud)

或者,更准确地说,[len(L[ii]) == len(N[ii]) for ii, t in enumerate(L)]具有所有True元素 和M == Q,其中Q = [item for t in N for item in t]

怎么做?

geo*_*org 8

it = iter(M)
Run Code Online (Sandbox Code Playgroud)

其次是

res = [tuple(itertools.islice(it, len(t))) for t in L]
Run Code Online (Sandbox Code Playgroud)

应该能解决问题