为银行流水日期补全年份的Python代码修正需求
问题:给银行流水日期补全年份
现有数据
银行流水列表:
BK_LIST = ["05 Sep 2020 OPENING BALANCE $30,152.02CR", "05 Sep Transfer to xxXXXX XXXXXXXXX app 100.00 $ $30,052.02CR", "27 Oct Transfer to xxXXXX XXXXXXXXX app 100.00 $ $31,800.06CR", "01 Nov Credit Interest $1.32 $31,601.38CR", "02 Nov Transfer to xxXXXX XXXXXXXXX app 51.00 $ $31,550.38CR", "30 Dec Transfer to xxXXXX XXXXXXXXX app 100.00 $ $27,800.00CR", "31 Dec Transfer to xxXXXX XXXXXXXXX app 100.00 $ $29,000.00CR", "01 Jan Credit Interest $1.27 $29,001.27CR", "26 Feb Transfer to xxXXXX XXXXXXXXX app 100.00 $ $28,900.00CR", "03 Mar Transfer to xxXXXX XXXXXXXXX app 100.00 $ $28,700.08CR", "04 Mar 2021 CLOSING BALANCE $28,700.08 CR" ]
包含2020-2021年月的参考列表:
mth_yr_list =['Jan 2020', 'Feb 2020', 'Mar 2020', 'Apr 2020', 'May 2020', 'Jun 2020', 'Jul 2020', 'Aug 2020', 'Sep 2020', 'Oct 2020', 'Nov 2020', 'Dec 2020', 'Jan 2021', 'Feb 2021', 'Mar 2021', 'Apr 2021', 'May 2021', 'Jun 2021', 'Jul 2021', 'Aug 2021', 'Sep 2021', 'Oct 2021', 'Nov 2021', 'Dec 2021']
从流水提取的月份列表(按时间顺序):
list_of_mths =["Sep","Oct","Nov","Dec","Jan","Feb","Mar"]
需求
给流水里的日期补全年份,例如将"05 Sep"补全为"05 Sep 2020",最终需要得到按时间顺序排列的完整年月列表:
['Sep 2020', 'Oct 2020', 'Nov 2020','Dec 2020','Jan 2021','Feb 2021', 'Mar 2021']
尝试的代码及问题
原代码:
jac =[] for mth in list_of_mths: for mth1 in mth_yr_list: mth2 = mth1[:3].strip() if mth ==mth2: jac.append(mth1) mth_yr_list.remove(mth1) print(jac)
错误输出:
['Sep 2020', 'Sep 2021', 'Oct 2020', 'Oct 2021', 'Dec 2021']
问题根源:
- 遍历
mth_yr_list时直接删除元素,会打乱列表索引,导致循环跳过后续元素 - 找到匹配月份后未终止内层循环,会继续匹配同月份的下一个年份(比如Sep会同时匹配2020和2021)
修正后的代码
思路:list_of_mths是按时间顺序排列的,从mth_yr_list的副本中按顺序找到第一个匹配的月份,添加到结果后移除该元素,确保后续匹配的是下一个时间点的月份。
jac = [] # 复制参考列表,避免修改原数据 temp_mth_yr = mth_yr_list.copy() for mth in list_of_mths: for idx, mth1 in enumerate(temp_mth_yr): if mth1.startswith(mth): jac.append(mth1) # 删除已匹配的项,防止重复匹配 del temp_mth_yr[idx] # 找到匹配后立即退出内层循环,处理下一个月份 break print(jac)
运行结果:
['Sep 2020', 'Oct 2020', 'Nov 2020', 'Dec 2020', 'Jan 2021', 'Feb 2021', 'Mar 2021']
内容的提问来源于stack exchange,提问作者user20773638
相关产品推荐
相关产品推荐

