如何获取列表最大ID+1值或填补数值间隙的技术咨询
解决方案
核心逻辑是找到最小的未出现的正整数——如果1到当前最大ID是连续的,就用最大ID加1;如果中间有间隙,就取间隙里最小的那个数。
实现代码
# 先通过GET请求解析出ID列表 param_ids = [element['id'] for element in param_current_ids_dict] # 排序并去重,避免重复ID干扰判断 sorted_unique_ids = sorted(set(param_ids)) target_id = 1 for current_id in sorted_unique_ids: if current_id == target_id: target_id += 1 else: # 找到第一个缺失的正整数,直接跳出循环 break # 此时target_id就是我们要的POST用ID print(target_id)
测试验证
- 当
param_ids = [1,2]时,循环结束后target_id为3,符合需求 - 当
param_ids = [1,3]时,循环到current_id=3时,发现不等于target_id=2,跳出后target_id为2,正好填补间隙 - 其他场景:如果列表是
[2,3],会返回1;如果是[1,4,5],会返回2,都能正确处理
内容的提问来源于stack exchange,提问作者mmmmmmm
相关产品推荐
相关产品推荐

