如何在Python中动态生成指定规则的字典 无需静态定义所有键值
Python动态生成目标字典的实现方法
你可以通过字典推导式结合规则映射完成动态生成,不需要手动逐个定义键值对,不同场景可以选择对应方案:
场景1:磁盘数量不超过26个
直接利用小写字母的ASCII码规律生成,代码最简洁:# 可按需调整磁盘总数量total_disk的值 total_disk = 5 disk_dict = {f"Disk{i}": f"dev{chr(ord('a') + i -1)}" for i in range(1, total_disk +1)}执行后生成的结构完全匹配你要求的
{"Disk1" : "deva", "Disk2" :"devb" , "Disk3": "devc"...}格式。场景2:磁盘数量超过26个,需要和Linux磁盘命名规则对齐(支持devaa、devab这类后缀)
先写一个小工具函数把数字转换为无0的26进制字母序列,再生成字典:def num_to_letter(num: int) -> str: res = [] while num > 0: num, mod = divmod(num -1, 26) res.append(chr(ord('a') + mod)) return "".join(reversed(res)) total_disk = 30 disk_dict = {f"Disk{i}": f"dev{num_to_letter(i)}" for i in range(1, total_disk +1)}场景3:已经提前获取到所有dev设备名的列表
直接基于列表索引生成对应映射即可:# 示例dev设备列表,可替换为你实际从系统读取的结果 dev_list = ["deva", "devb", "devc", "sda", "sdb"] disk_dict = {f"Disk{idx+1}": dev_name for idx, dev_name in enumerate(dev_list)}
内容的提问来源于stack exchange,提问作者Usha。
相关产品推荐
相关产品推荐

