初级开发人员面试中的Python代码测试

初级开发人员面试中的Python代码测试,python,dictionary,Python,Dictionary,今天早上我参加了一个初级python开发人员的面试,不得不想出一种更具python风格的方式来表示以下代码 dict = {} for i in range(a, b): if i % c == d: dict[i] = i/c 我真的不知道答案你觉得他出于好奇在寻找什么 我想大多数python开发人员都会对dict进行理解。我们会避免命名一个变量dict,因为它隐藏了内置类型 dict_ = {i: i/c for i in range(a,b) if i % c =

今天早上我参加了一个初级python开发人员的面试,不得不想出一种更具python风格的方式来表示以下代码

dict = {}
for i in range(a, b):
    if i % c == d:
        dict[i] = i/c

我真的不知道答案你觉得他出于好奇在寻找什么

我想大多数python开发人员都会对dict进行理解。我们会避免命名一个变量
dict
,因为它隐藏了内置类型

dict_ = {i: i/c for i in range(a,b) if i % c == d}

如果你能找到重写它的方法,他们可能也会印象深刻(提示:结果与之有一些相似之处)。但我怀疑面试官会期望初级python开发人员看到这种可能性——他们可能只是希望看到您是否理解理解

您可以使用dict理解:

dict = {i: i/c for i in range(a,b) if i%c == d}

你可以在上获得这方面的帮助。当
c=0
时,如果提到可能出现的
ZeroDivisionError
可能是额外的点。使用
divmod
{i:res[0]表示i,res in((i,divmod(i,c))表示i在范围(a,b))内,如果res[1]==d}
。有没有更简单的方法?@Mattias我想你可以利用这样一个事实,即满足条件的范围元素是均匀分布的(即开始:停止:步骤,像一个切片),这可以用来删除测试。我没有完整地计算出来,但键的顺序是start:stop:step,值的顺序是start\u:stop\u:1,我的想法是将启动和停止计算为a、b、c、d的函数,然后将它们压缩起来。!这是领带。。!