检查数据中 level 字段的最小值。 如果最小值不是 1,则将所有 level 减去 (min_level - 1),使最小值为 1。
(data: list)
| 62 | |
| 63 | |
| 64 | def normalize_levels(data: list) -> list: |
| 65 | """ |
| 66 | 检查数据中 level 字段的最小值。 |
| 67 | 如果最小值不是 1,则将所有 level 减去 (min_level - 1),使最小值为 1。 |
| 68 | """ |
| 69 | if not data: |
| 70 | return data |
| 71 | |
| 72 | # 收集所有存在的 level 值 |
| 73 | levels = [] |
| 74 | for item in data: |
| 75 | if isinstance(item, dict) and "level" in item: |
| 76 | val = item["level"] |
| 77 | if isinstance(val, (int, float)): |
| 78 | levels.append(int(val)) |
| 79 | |
| 80 | if not levels: |
| 81 | return data |
| 82 | |
| 83 | min_level = min(levels) |
| 84 | |
| 85 | if min_level != 1: |
| 86 | offset = min_level - 1 |
| 87 | for item in data: |
| 88 | if isinstance(item, dict) and "level" in item: |
| 89 | if isinstance(item["level"], (int, float)): |
| 90 | item["level"] = int(item["level"]) - offset |
| 91 | |
| 92 | return data |
| 93 | |
| 94 | |
| 95 | def main(): |