如何从字典列表提取class字段为键生成值全为0的新字典
实现方法
方法1:字典推导式(最推荐,可读性最高)
直接遍历原列表提取class字段作为键,统一赋值为0即可,代码如下:
a = [ {"class": "math", "grade": 90}, {"class": "english", "grade": 80}, {"class": "science", "grade": 70}, ] # 字典推导式实现 b = {item["class"]: 0 for item in a} print(b) # 输出:{'math': 0, 'english': 0, 'science': 0}
方法2:使用dict.fromkeys方法
先提取所有class字段组成可迭代对象,再通过fromkeys批量赋值为0:
class_keys = (item["class"] for item in a) b = dict.fromkeys(class_keys, 0)
注意:该方法仅适合赋值为不可变对象的场景(比如数字、字符串、元组),如果要赋值为列表、字典这类可变对象,不要用这个方法,会出现所有键引用同一个可变对象的问题。
内容的提问来源于stack exchange,提问作者flamethrower10
相关产品推荐
相关产品推荐

