繁体   English   中英

“ y中的x的x:set()”如何工作?

[英]how does “x:set() for x in y” work?

我正在查看一个实现拓扑排序的python代码,发现以下代码

data.update({item:set() for item in extra_items_in_deps})

我知道data.update做什么,但是不确定如何:

item:set() for item in extra_items_in_deps  

作品。

这是字典的理解。 它具有以下语法:

{ k: v for item in sequence }

这将为每个item按键k和值v sequence创建字典条目。

例如,下面的代码将创建一个字典,该字典使用序列(1, 2, 3)的键并将平方数作为值:

>>> { x: x**2 for x in (1, 2, 3) }
{1: 1, 2: 4, 3: 9}

对于您而言,您具有以下字典理解:

{ item: set() for item in extra_items_in_deps }

这将使用extra_items_in_deps的键创建一个字典,并为每个键创建一个新集合 因此,假设extra_items_in_deps = [1, 2, 3] ,则等效于此字典:

{ 1: set(), 2: set(), 3: set() }

然后将此字典传递给data.update() ,该文件使用传递的字典中的键值对更新字典data

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM