Python如何将包含重复serial键的列表转换为单个字典
解决方案
你可以直接用Python内置的enumerate()函数实现转换,最简单的写法是字典推导式,代码如下:
# 原始数据 List_A = [{'serial': '8BQZ-CCSU-XY36'}, {'serial': 'IEAJ-NVIS-VMKM'}, {'serial': '1ZQN-FXHB-FTXT'}] # 转换逻辑,enumerate的start参数设为1让序号从1开始计数 serial_dict = {f"serial{i}": item['serial'] for i, item in enumerate(List_A, start=1)}
执行后得到的serial_dict就是你需要的目标格式:
{'serial1': '8BQZ-CCSU-XY36', 'serial2': 'IEAJ-NVIS-VMKM', 'serial3': '1ZQN-FXHB-FTXT'}
如果你不习惯用推导式,也可以用普通循环实现,逻辑完全一致:
serial_dict = {} # 遍历列表时生成从1开始的序号 for index, item in enumerate(List_A, start=1): key_name = f"serial{index}" serial_dict[key_name] = item['serial']
如果需要兼容列表元素可能不存在serial键的场景,可以用字典的get方法避免抛出KeyError异常:
serial_dict = { f"serial{i}": item.get('serial', '') for i, item in enumerate(List_A, start=1) }
Django传递使用说明
你在视图函数中完成转换后,把生成的字典放入模板上下文即可正常使用,示例代码:
from django.shortcuts import render def your_view(request): List_A = [{'serial': '8BQZ-CCSU-XY36'}, {'serial': 'IEAJ-NVIS-VMKM'}, {'serial': '1ZQN-FXHB-FTXT'}] serial_dict = {f"serial{i}": item['serial'] for i, item in enumerate(List_A, start=1)} # 传入模板上下文 return render(request, '你的模板文件名.html', {'serial_dict': serial_dict})
在模板中可以直接通过字典键名取值,比如{{ serial_dict.serial1 }}就可以拿到第一个序列号。
内容的提问来源于stack exchange,提问作者terry5546
相关产品推荐
相关产品推荐

