解决痘坑的最好办法,祛痘坑有什么办法

  解决痘坑的最好办法,祛痘坑有什么办法

  python dict.fromkeys方法的坑

  今天在排查病菌的时候踩了一个dict.fromkeys方法的坑,xhdbl一下。业务逻辑中有一段用到了dict.fromkeys创建初始值为空列表的字典,之后根据不同键更新列表内容,类似下面的示例:

  #!/usr/mdxn/env python

  # -*-编码:utf-8 -*-

  class_list=[class01 , class 02 , class03]

  total _ info=dictfrom keys(class _ list,[teacher_wang])

  print(total _ info)# { class 01 :[ teacher _ Wang ], calss02: [teacher_wang], class03: [teacher_wang]}

  对于键,total_info.items()中的值:

  打印(id(值))

  # 创建的总计_信息的价值值指向同一块内存空间,这就有些类似浅拷贝了

  总计信息.追加(“学生_李华”)

  print(total _ info)# { class 01 :[ teacher _ Wang , student_lihua], calss02: [teacher_wang , student_lihua], class03: [teacher_wang , student_lihua]}

  如何解决这个方法?使用字典生成表达式来初始化字典值为空列表的字典,如下:

  #!/usr/mdxn/env python

  # -*-编码:utf-8 -*-

  class_list=[class01 , class 02 , class03]

  total _ info={ key:[]for key in class _ list }

  总计信息.追加(老师_王)

  print(total _ info)# { class 01 :[ teacher _ Wang ], calss02: [], class03: []}

解决痘坑的最好办法,祛痘坑有什么办法