Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python key=lambda理解和c#等效_Python_Lambda_Key_Min - Fatal编程技术网

python key=lambda理解和c#等效

python key=lambda理解和c#等效,python,lambda,key,min,Python,Lambda,Key,Min,我已经记录了我自己关于“key=lambda”功能的情况,并找到了一个很好的使用参考: 正因为如此,我才理解了以下代码“应该”做什么: def _min_hull_pt_pair(hulls): """Returns the hull, point index pair that is minimal.""" h, p = 0, 0 for i in xrange(len(hulls)): j = min(xrange(len(hulls[i])), k

我已经记录了我自己关于“key=lambda”功能的情况,并找到了一个很好的使用参考:

正因为如此,我才理解了以下代码“应该”做什么:

def _min_hull_pt_pair(hulls):
    """Returns the hull, point index pair that is minimal."""
    h, p = 0, 0
    for i in xrange(len(hulls)):
        j = min(xrange(len(hulls[i])), key=lambda j: hulls[i][j])
        if hulls[i][j] < hulls[h][p]:
            h, p = i, j
    return (h, p)   
我的疑问是,作为一名python学徒,尽管学习速度很快:

1-我是否需要追溯调用堆栈以了解检索
hulls[I][j]
时得到的“类型”或更简单的“值”?(我读到python使用了“duck-typing”,如果我没有弄错的话,这可以解释这种需要)

2-
key=lambda j
基本上是“检索”外壳的
[i][j]
元素,不是吗?但这是否意味着
hulls[i][j]
是一种整数类型,因为“for”迭代使用for的
xrange
调用“min”

3-可选:是否有与python的
min
相当或可比的c#

提前谢谢

  • 对。特别是,外壳[i][j]可以是任何类型或任何值,具体取决于运行时发生的情况。e、 g.所有外壳都可以是整数,但您可以设置
    外壳[i][j]='foo'

  • 是的,lambda返回外壳中第i行的第j个元素。外壳[i][j]可以是任何类似的东西,例如
    min('a','b')是'a'


  • 谢谢你的帮助。关于第二点,只要我能“min”任何两种类型,这对python是公平的?基本上,我将“xrange”(如果我没有弄错的话,它将返回一个int数组)与其他东西混合的事实并不意味着“其他东西”是一个int!?!哈!我讨厌python的不严格:)事实上,您并不是在用lambda来定义“xrange”。稍微解构一下:xrange部件在[0,len(外壳[i])范围内构造数字,键定义了将被“minned”的特定值。表示为列表理解,您可能会或可能不会发现更容易阅读:
    j=min([hulls[i][x]表示xrange中的x(len(外壳[i]))
    哈哈,这太疯狂了,没有帮助我是不会得到的。:D
            j = min(xrange(len(hulls[i])), key=lambda j: hulls[i][j])