如何用Python的for循环从列表中按间隔n提取元素生成多列表
解决方案
基于for循环的实现方式
你可以指定间隔数n(示例中n=3),通过遍历起始索引,结合列表切片语法按步长提取元素,最终生成目标字典。代码如下:
test_list = ['a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'a10', 'a11', 'a12', 'a13', 'a14', 'a15', 'a16', 'a17', 'a18'] n = 3 # 对应要拆分出的列表数量 my_result = {} for i in range(n): # 从索引i开始,以n为步长提取元素 sub_list = test_list[i::n] # 生成对应键名(list_a、list_b...) key = f'list_{chr(ord("a") + i)}' my_result[key] = sub_list print(my_result)
代码说明
- 切片语法:
test_list[i::n]表示从索引i出发,每间隔n-1个元素提取一个(步长为n),刚好满足按间隔拆分的需求。 - 循环逻辑:通过
range(n)遍历0到n-1的起始索引,依次生成每个子列表。 - 键名生成:利用
chr(ord("a") + i)动态生成list_a、list_b这类键名,适配不同的n值。
输出验证
运行代码后,输出结果与目标完全一致:
{'list_a': ['a1', 'a4', 'a7', 'a10', 'a13', 'a16'], 'list_b': ['a2', 'a5', 'a8', 'a11', 'a14', 'a17'], 'list_c': ['a3', 'a6', 'a9', 'a12', 'a15', 'a18']}
内容的提问来源于stack exchange,提问作者towhidur rahman
相关产品推荐
相关产品推荐

