python return 语句概念
python return statement concept
我试图从字典中找到最高的三个值,我应该 return 该值的键
这个方法我遇到过
import heapq
def get_n_largest(n,dictionary):
return heapq.nlargest(n,dictionary,dictionary.get)
来自 python 文档,我不明白 nlargest
需要接受一个整数、一个可迭代对象和一个键(如果提供的话)。
我不明白的是return语句中的dictionary.get()
和dictionary.get()
有什么区别
当我尝试打印字典的 dictionary.get
时 returns
"built-in method get of dict object at 0x0000020E77B12168"
我做了一些搜索,但我找不到关于它的概念。非常感谢任何帮助!
dictionary.get 没有调用函数,它只是对函数 dictionary.get 的引用。为了调用该函数,您需要执行 dictionary.get(*args, **kwargs)
至于这个 - heapq.nlargest(n,dictionary,dictionary.get)
我还没有看过 heapq 的文档。但显然 nlargest callable 似乎将可调用引用作为第三个参数。反过来,nlargest 可能会在逻辑中的某处调用 callable 作为 dictionary.get(*args, **kwargs)
没有区别。这两种情况下的 .get 方法完全相同。在 return 语句中,它将应用于字典中的键(可迭代的元素),即。称为 get(k)
。在打印中它没有应用,即。使用字典键调用并打印 get
值,这是函数引用。
我试图从字典中找到最高的三个值,我应该 return 该值的键 这个方法我遇到过
import heapq
def get_n_largest(n,dictionary):
return heapq.nlargest(n,dictionary,dictionary.get)
来自 python 文档,我不明白 nlargest
需要接受一个整数、一个可迭代对象和一个键(如果提供的话)。
我不明白的是return语句中的dictionary.get()
和dictionary.get()
有什么区别
当我尝试打印字典的 dictionary.get
时 returns
"built-in method get of dict object at 0x0000020E77B12168"
我做了一些搜索,但我找不到关于它的概念。非常感谢任何帮助!
dictionary.get 没有调用函数,它只是对函数 dictionary.get 的引用。为了调用该函数,您需要执行 dictionary.get(*args, **kwargs) 至于这个 - heapq.nlargest(n,dictionary,dictionary.get) 我还没有看过 heapq 的文档。但显然 nlargest callable 似乎将可调用引用作为第三个参数。反过来,nlargest 可能会在逻辑中的某处调用 callable 作为 dictionary.get(*args, **kwargs)
没有区别。这两种情况下的 .get 方法完全相同。在 return 语句中,它将应用于字典中的键(可迭代的元素),即。称为 get(k)
。在打印中它没有应用,即。使用字典键调用并打印 get
值,这是函数引用。