gpt4 book ai didi

python - 基于另一个列表中每个索引的值的列表组合

转载 作者:行者123 更新时间:2023-12-02 01:27:34 25 4
gpt4 key购买 nike

我有以下两个列表

list_1 = [3, 5, 7, 2]

list_2 = [
'1-CHA', '2-NOF', '3-INC',
'4-CHA', '5-NOF', '6-NOF', '7-INC', '8-INC',
'9-INC', '10-INC', '11-CHA', '12-NOF', '13-CHA', '14-CHA', '15-INC',
'16-INC', '17-INC'
]

我想通过以下方式组合两个列表:

final_list = [
'1-CHA|2-NOF|3-INC',
'4-CHA|5-NOF|6-NOF|7-INC|8-INC',
'9-INC|10-INC|11-CHA|12-NOF|13-CHA|14-CHA|15-INC',
'16-INC|17-INC'
]

final_list - 应与list_1长度相同

最佳答案

您可以从 list_2 创建迭代器,以便通过调用 next 从列表中获取项目,次数达到 list_1 中指定的次数> 在迭代器上:

seq = iter(list_2)
final_list = ['|'.join(next(seq) for _ in range(n)) for n in list_1]

您还可以使用 itertools.islice 来避免重复调用 next(感谢 @gog 的建议):

from itertools import islice
seq = iter(list_2)
final_list = ['|'.join(islice(seq, 0, n)) for n in list_1]

要在不使用列表理解或生成器表达式的情况下执行此操作,您可以创建一个空列表并向其追加项目:

seq = iter(list_2)
final_list = []
for n in list_1:
items = []
for _ in range(n):
items.append(next(seq))
final_list.append('|'.join(items))

演示:https://replit.com/@blhsing/BlandEssentialJavadoc

关于python - 基于另一个列表中每个索引的值的列表组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74121490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com