如何用Python按标记拆分含ID-日期对的列表为两个目标列表?
Python实现列表拆分方案
这是个典型的结构化列表拆分需求,我给你写个简洁易读的实现,思路直接还容易维护:
实现思路
原始列表里的数字标记(比如'2'、'1')代表后续要提取的(ID,日期)对数量,我们只需要遍历列表,遇到标记值时,就按对应数量提取后续的ID和日期,分别存入两个目标列表即可。
代码实现
original_list = ['2', '16SCSE102014', '15/03/2019', '16SCSE101350', '15/03/2019', '1', '16SCSE102020', '02/02/2020'] # 初始化两个空列表用于存储结果 ids = [] dates = [] # 用索引控制遍历位置 current_index = 0 while current_index < len(original_list): # 将标记值转为整数,获取需要处理的(ID,日期)对数量 pair_count = int(original_list[current_index]) current_index += 1 # 跳过标记值,移动到第一个ID的位置 # 按标记数量提取对应的数据对 for _ in range(pair_count): ids.append(original_list[current_index]) dates.append(original_list[current_index + 1]) current_index += 2 # 移动到下一对数据的起始位置 # 输出结果 print("拆分后的IDs列表:", ids) print("拆分后的日期列表:", dates)
运行结果
执行代码后会输出:
拆分后的IDs列表: ['16SCSE102014', '16SCSE101350', '16SCSE102020'] 拆分后的日期列表: ['15/03/2019', '15/03/2019', '02/02/2020']
代码说明
- 用
current_index控制遍历位置,能根据标记值动态调整前进步数,避免重复处理元素 - 每次遇到标记值,先转成整数确定要提取的对数,再循环提取对应的ID和日期
- 逻辑清晰,即使原始列表后续增加更多标记和数据对,也能正确处理
内容的提问来源于stack exchange,提问作者Saurabh Kumar Singh
相关产品推荐
相关产品推荐

