如何检查数组元素是否存在于另一数组的子数组中,并用Python查找对应最新日期
实现代码
from datetime import datetime # 初始化输入数组 Array_A = [['Nov','11-10-2020'],['Jan','01-13-2020'],['Nov','11-11-2020'],['Dec','12-03-2020'],['Jan','01-03-2020'],['Nov','11-03-2020']] Array_B = ['Nov','Jan'] output = {} for target_month in Array_B: # 筛选对应月份的所有日期 matched_dates = [item[1] for item in Array_A if item[0] == target_month] # 按日期格式解析后取最大值,再返回原字符串格式 latest_date = max(matched_dates, key=lambda d: datetime.strptime(d, "%m-%d-%Y")) output[target_month] = latest_date # 打印结果 print(output)
运行输出
{'Nov': '11-11-2020', 'Jan': '01-13-2020'}
逻辑说明
- 遍历
Array_B里的所有目标月份 - 对每个月份,从
Array_A中过滤出所有对应月份的日期字符串 - 用
datetime.strptime把%m-%d-%Y格式的字符串转成可比较的日期对象,调用max函数取最新日期 - 最终结果以字典形式存储月份和对应的最新日期,可按需直接取用
内容的提问来源于stack exchange,提问作者liuxu
相关产品推荐
相关产品推荐

