Any*_*nya 7 python lambda defaultdict
我正在阅读有关集合 defaultdict 的信息,并遇到了以下代码行:
import collections
tree = lambda: collections.defaultdict(tree)
some_dict = tree()
some_dict['colours']['favourite'] = "yellow"
Run Code Online (Sandbox Code Playgroud)
我知道lamba接受一个变量并对其执行一些功能。我见过 lambda 是这样使用的: lambda x: x + 3 在上面的第二行代码中,lambda 使用什么变量,它执行什么功能?
我也明白 defaultdict 可以采用 int 或 list 等参数。在第二行中,defaultdict 接受参数树,它是一个变量。那有什么意义呢?
该代码大致相当于(忽略def语句引入的元数据)
import collections
def tree():
return collections.defaultdict(tree)
some_dict = tree()
some_dict['colours']['favourite'] = "yellow"
Run Code Online (Sandbox Code Playgroud)
该lambda表达式简单地定义了一个零参数的函数,并且该函数绑定到名称tree。
通常,仅当您lambda确实需要匿名函数时才使用表达式,例如将其作为参数传递给另一个函数,如下所示
sorted_list = sorted(some_list_of_tuples, key=lambda x: x[0])
Run Code Online (Sandbox Code Playgroud)
def当您确实需要命名函数时,使用语句被认为是更好的做法。
defaultdict接受一个可调用对象来为新键生成默认值。int()返回 0,list()返回一个空列表,并tree()返回一个新的defaultdict; 它们都可以用作 的参数defaultdict。tree定义返回 adefaultdict使用自身作为默认值生成器的递归性质意味着您可以生成任意深度的嵌套字典;每个“叶子”字典本身就是另一个defaultdict。
| 归档时间: |
|
| 查看次数: |
1352 次 |
| 最近记录: |