如何将3元素小列表按循环规则添加到1455元素大列表中
循环填充大列表实现方案
3元素小列表填充1455长度大列表的需求可直接通过索引取模实现,且1455刚好是3的整数倍,可完整完成循环填充无剩余。
遍历赋值实现(匹配「遍历大列表逐个赋值」要求)
先初始化定长大列表,再按规则遍历赋值,核心逻辑是对大列表索引取小列表长度的模,实现元素循环复用:
small_list = [97, 98, 99] big_len = 1455 big_list = [None] * big_len for idx in range(big_len): big_list[idx] = small_list[idx % len(small_list)]
对应位置规则:小列表第1个元素
97会出现在大列表第1、4、7...(索引0、3、6...)位;第2个元素98出现在第2、5、8...位;第3个元素99出现在第3、6、9...位。如果需要调整为97出现在大列表1、3、5...奇数位,只需将取模除数改为2,剩余偶数位的元素分配规则可根据实际需求调整判断条件即可。
简洁列表推导式实现
无需提前初始化大列表,一行完成生成:
small_list = [97, 98, 99] big_list = [small_list[i % len(small_list)] for i in range(1455)]
高性能迭代器实现
对大长度列表生成效率更高,不会预生成冗余循环元素:
from itertools import cycle, islice small_list = [97, 98, 99] # 循环复用小列表后取前1455个元素,直接生成目标大列表 big_list = list(islice(cycle(small_list), 1455))
内容的提问来源于stack exchange,提问作者Blake Bowman
相关产品推荐
相关产品推荐

