1

想象有一个任务——例如在 dict 中进行一些更改——我们有 dict:{faculty: [students]}模拟大学目录,我们得到扣除列表——[student_1, student_2, ...]我们想从该列表中扣除所有学生。哪种方式更pythonic:

  1. 编写改变函数内部字典的函数
def deducation(students, deducation_list):
  # deducate students
  # return nothing

students = {faculty: [students]}
deducation_list = [student_1, student_2, ...]
deducation(students, deducation_list)

2.编写在自身内部生成dict并返回新dict的函数

def deducation(students, deducation_list):
  new_students = dict()
  # deducate students
  return new_students

students = {faculty: [students]}
deducation_list = [student_1, student_2, ...]
students = deducation(students, deducation_list)

比较:第一种方式

“+”:更少的内存消耗(没有新的dict在函数内部生成),更紧凑

“-”:函数内部不明显的转换(通常你不希望函数会改变你内部的对象)-> 代码可读性较差

第二种方式

“+”:代码更具可读性

“-”:内存消耗更多——新的dict里面创建,里面可以更复杂的逻辑来生成新的

所以问题是——哪种方式更适合哪种情况?

4

0 回答 0