编辑:我删除了我的解释部分,因为它错了,但我仍然无法转换它。 我正在学习python中的列表和词典,而且我遇到了这段代码。
x = min(minValue, key=lambda b: min([a( \
myFunction(5,b),c) for c in something]))
这与逻辑等价的是什么?看起来很简单,但是当我尝试用不同的代码编写它时,我不会得到同样的东西。 。如果没有整个键和lambda事件,如何以不同方式编写
好像我的解释错了。这是我尝试的更新代码。
for b in minValue:
for c in something:
minimum=min(myFunction(5,b),c)
result=min(minimum)
return result
注意:通过逻辑等效,我并不是说提供的代码应该像我给出的代码一样计算它,但它应该具有相同的输出。
答案 0 :(得分:1)
我'不确定,但它可能是这样的
def example(minValue):
data = []
for b in minValue:
values = []
for c in something:
values.append( a(myFunction(5,b),c) )
result = min(values)
# keep `result` and `b` which gives this `result`
data.append( [result, b] )
# find minimal `result` and `b` which gives this `result`
x = min(data) # x = [result, b]
# return `b`
return x[1]
#---
x = example(minValue)
编辑: min(data)
可能存在问题,因为min
将比较result
和b
,而原始版本仅比较{{1} }}。它可能需要没有result
的版本,但需要:
min()
修改强>
if result < min_result:
min_result = result
min_b = b