【问题标题】:Write lambda function as def:-function将 lambda 函数写为 def:-function
【发布时间】:2020-04-18 17:52:31
【问题描述】:

我正在尝试将 lambda 函数写入 def:-function,以便更好地理解我得到的 Python 示例脚本中发生的事情。在该脚本的某些函数中,集成了一个 lambda 函数,我想知道它看起来像 def:-statement。 (我是使用 lamda 函数的新手) 所以这里是代码:

import numpy as np
import pandas as pd

df = pd.DataFrame({"A": [18,28,29,32,35,36,37,37,39,40,42,42,46,48,54,56,57,61,61,62,63,65],                  "B":  [9,13,17,15,23,21,24,28,26,30,29,36,38,42,40,48,40,51,54,50,51,57]})

a = lambda df: np.corrcoef(df[:,0], df[:,1])[0,1]
print(a)

>>>function <lambda> at 0x0000016896784950> #result of print-statement

def lamb(df):
    g = np.corrcoef(df.iloc[:,0],df.iloc[:,1])[0,1]
    return g

b = lamb(df)
print(b)

>>>0.974499725153725 #result of print-statement

如何更改 def lamb(df): 代码,使其打印语句与 lambda 函数的打印语句具有相同的输出?

【问题讨论】:

  • 你打印的不一样,一个是打印一个 lambda 函数对象,另一个是函数调用的结果
  • 我知道,这是我的问题。如何更改 'def lamb(df):'-function 以使其打印相同..
  • 只需:print(a(df)),就像您使用 print(lamb(df)) 一样。 a 和 lamb 都是函数。
  • print(lamb) ?
  • print(a(df)) 给出:TypeError: '(slice(None, None, None), 0)' is an invalid key

标签: python function numpy lambda


【解决方案1】:

print(a) 打印一个函数,但是

b = lamb(df)
        
print(b)

打印函数的输出

尝试print(lamb)得到类似的结果

【讨论】:

  • 杰普,就是这样!该死的。
【解决方案2】:

print(a)

您正在尝试打印一个函数,以获得相同的可用输出:

print(a(df))

是你要找的东西

【讨论】:

  • print(a(df)) 给出:TypeError: '(slice(None, None, None), 0)' is an invalid key
  • 可能是命名冲突,当您更改 lambda 声明中的变量名或参数时会发生什么?
【解决方案3】:

只打印函数lamb。这将在 0x 的位置打印函数......

print(lamb)

【讨论】:

    猜你喜欢
    • 2022-01-08
    • 2015-05-08
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多