Python中如何将单个列表转换为键值均来自该列表的字典
Python单列表转换为键值同名变量的字典方案
前置要求:需要先确保列表中每个字符串对应的同名变量,已经在当前作用域完成定义,否则运行时会抛出
KeyError。
假设你已经定义好了同名变量,示例如下:
name = "张三" degree = "本科" age = 22 score = 95 my_list = ['name', 'degree', 'age', 'score']
以下是两种常用的转换方案:
- 方法1:字典推导式(推荐,适配Python 2.7及以上全版本)
# 全局作用域下使用globals()获取全局变量 my_dict = {key: globals()[key] for key in my_list} # 函数内部局部作用域下使用locals()获取局部变量 def generate_dict(): name = "张三" degree = "本科" age = 22 score = 95 my_list = ['name', 'degree', 'age', 'score'] return {key: locals()[key] for key in my_list} my_dict = generate_dict()
- 方法2:dict()构造器结合生成器表达式(兼容更早的Python版本)
my_dict = dict((key, globals()[key]) for key in my_list)
运行后得到的my_dict就是你需要的格式:{'name': '张三', 'degree': '本科', 'age': 22, 'score': 95}。
该方案适配你的特殊场景:不需要第二个列表提供值,直接通过变量名和列表元素的对应关系从当前作用域取对应值组装字典。
内容的提问来源于stack exchange,提问作者snake
相关产品推荐
相关产品推荐

