Chr*_*580 1 python string list set
我有一个list像这样的字符:
s = ['Y', 'U', 'U', 'N', 'U', 'U', 'N', 'N', 'N']
Run Code Online (Sandbox Code Playgroud)
以及以下数组:
t = [2, 4, 3]
Run Code Online (Sandbox Code Playgroud)
我想根据数组划分列表,使得每个子集st[i]都有len(t[i]). 这个例子的结果应该是:
st = [['Y', 'U'], ['U', 'N', 'U', 'U'], ['N', 'N', 'N']]
Run Code Online (Sandbox Code Playgroud)
如果数组 t 是:
t = [5, 2, 2]
Run Code Online (Sandbox Code Playgroud)
那么结果应该是:
st = [['Y', 'U', 'U', 'N', 'U'], ['U', 'N'], ['N', 'N']]
Run Code Online (Sandbox Code Playgroud)
条目为 s 和 t。我尝试插入两个循环,一个用于列表 s,另一个用于数组 t。但它不起作用。我怎样才能实现这个?
您可以从中创建一个迭代器s,并itertools.islice根据以下中的大小对迭代器进行切片t:
from itertools import islice
i = iter(s)
[list(islice(i, l)) for l in t]
Run Code Online (Sandbox Code Playgroud)
这将返回:
[['Y', 'U'], ['U', 'N', 'U', 'U'], ['N', 'N', 'N']]
Run Code Online (Sandbox Code Playgroud)