Python 从另一个列表创建具有特定字符串长度的列表

Python 从另一个列表创建具有特定字符串长度的列表,python,Python,对于下面的解释中出现的任何混乱,我深表歉意,但我对Python有点陌生 我有一个文本列表,我想根据一个单独的值列表将列表分成更大的部分 例如: lst_a = ['This', 'is', 'an', 'example', 'of', 'a', 'simple', 'English', 'sentence.'] lst_b = [3, 4, 2] new_lst_a = ['This is an', 'example of a simple', 'English sentence.'] ['

对于下面的解释中出现的任何混乱,我深表歉意,但我对Python有点陌生

我有一个文本列表,我想根据一个单独的值列表将列表分成更大的部分

例如:

lst_a = ['This', 'is', 'an', 'example', 'of', 'a', 'simple', 'English', 'sentence.']
lst_b = [3, 4, 2]
new_lst_a = ['This is an', 'example of a simple', 'English sentence.']
['This is an', 'example of a simple', 'English sentence.']
所需结果:

lst_a = ['This', 'is', 'an', 'example', 'of', 'a', 'simple', 'English', 'sentence.']
lst_b = [3, 4, 2]
new_lst_a = ['This is an', 'example of a simple', 'English sentence.']
['This is an', 'example of a simple', 'English sentence.']

非常感谢任何帮助/指导

使用类似的内容:

lst_a = ['This', 'is', 'an', 'example', 'of', 'a', 'simple', 'English', 'sentence.']
lst_b = [3, 4, 2]
new_list = []

index = 0
for n in lst_b:
    new_list.append(' '.join(lst_a[index:index + n]))
    index += n

print(new_list)
输出:

lst_a = ['This', 'is', 'an', 'example', 'of', 'a', 'simple', 'English', 'sentence.']
lst_b = [3, 4, 2]
new_lst_a = ['This is an', 'example of a simple', 'English sentence.']
['This is an', 'example of a simple', 'English sentence.']

如果编写一个简单的for循环,则可以使用原始列表的迭代器。这种方法不会产生不必要的副本

>>> result = []
>>> it = iter(lst_a)
>>> for n in lst_b:
...     s = " ".join(next(it) for i in range(n))
...     result.append(s)
...
>>> result
['This is an', 'example of a simple', 'English sentence.']

您可以使用
islice
一次抓取n个元素,轻松完成此操作

>>> from itertools import islice
>>> lst_a = ['This', 'is', 'an', 'example', 'of', 'a', 'simple', 'English', 'sentence.']
>>> lst_b = [3, 4, 2]
>>> 
>>> itr = iter(lst_a)
>>> [' '.join(islice(itr, n)) for n in lst_b]
['This is an', 'example of a simple', 'English sentence.']

到目前为止你试过什么?请发布您的尝试。感谢您的帮助,这产生了我需要的结果!