如何通过遍历submission字典高效更新row列表中的对应值?
遍历submission字典高效更新row列表的方法
我们的目标是用submission中extractedX_Y格式的键对应值,更新row里第X个子列表的第Y个元素(注意Python列表索引从0开始,需要把X、Y减1做转换)。
先明确原始数据:
row = [['Toyyota', 'Cammry', '3000'], ['Foord', 'Muustang', '6000']] submission = { 'extracted1_1': 'Toyota', 'extracted1_2': 'Camry', 'extracted1_3': '1000', 'extracted2_1': 'Ford', 'extracted2_2': 'Mustang', 'extracted2_3': '5000', 'reportDate': '2022-06-01T08:30', 'reportOwner': 'John Smith' }
实现方法
直接遍历submission的键值对,过滤出符合格式的字段后映射到row对应位置更新:
for key, value in submission.items(): # 只处理extracted开头的目标键 if key.startswith('extracted'): parts = key.split('_') # 确保键的格式是extractedX_Y if len(parts) == 3: # 转换为0起始的索引 sublist_idx = int(parts[1]) - 1 elem_idx = int(parts[2]) - 1 # 检查索引有效性,避免越界报错 if 0 <= sublist_idx < len(row) and 0 <= elem_idx < len(row[sublist_idx]): row[sublist_idx][elem_idx] = value
效果验证
运行代码后,row会被更新为:
[['Toyota', 'Camry', '1000'], ['Ford', 'Mustang', '5000']]
方法优势
- 无需提前知晓
row的结构,自动适配所有符合extractedX_Y格式的字段 - 避免了遍历
row时手动匹配键的繁琐逻辑,代码更简洁高效 - 加入索引范围检查,能规避键格式错误或索引越界导致的异常
内容的提问来源于stack exchange,提问作者RunRabbit
相关产品推荐
相关产品推荐

