Python中如何从字典键值为多个变量批量赋值?适配HEX2RGB场景
问题原因
你原有写法报错的核心原因是{rgbValue}是把整个字典对象包装成了仅含1个元素的集合,元素数量和需要赋值的3个变量不匹配,自然无法正常运行。
可用实现方案
按简洁度、稳妥性排序如下:
- 最通用高效的写法(全Python版本兼容,无顺序依赖)
直接按键取值赋值,代码可读性最高、运行开销最小:rgbValue = HEX2RGB(hex, 'dict') r, g, b = rgbValue['r'], rgbValue['g'], rgbValue['b'] - Python 3.7+ 极简写法(顺序依赖)
从Python3.7开始,字典默认保留键的插入顺序,只要你的HEX2RGB返回的字典固定是r→g→b的键顺序,就可以直接取值迭代赋值:r, g, b = HEX2RGB(hex, 'dict').values() - 批量取值场景写法
如果你需要多次对同结构的RGB字典取值,可以用operator.itemgetter做批量键匹配,不用重复写索引逻辑:from operator import itemgetter get_rgb = itemgetter('r', 'g', 'b') # 后续可复用 r, g, b = get_rgb(HEX2RGB(hex, 'dict'))
内容的提问来源于stack exchange,提问作者Experi Ment
相关产品推荐
相关产品推荐

