繁体   English   中英

列表理解中的列表理解 - 范围

[英]List comprehension inside dictionary comprehension - scope

我试图在一行中的Python字典中创建一个完整的图形。 但是当创建值的列表理解时,我无法弄清楚如何指定key_value不能出现在值列表中(在图中说,没有自循环)。

对于n个节点

G = {k:[v for v in range(n)] for k in range(n) }

结果如此(例子n = 3)

{0: [0, 1, 2], 1: [0, 1, 2], 2: [0, 1, 2]}

但我想要的是这个

{0: [1, 2], 1: [0, 2], 2: [0, 1]}

但尝试类似的东西

G = {k:[v for v in range(n) for v !=k] for k in range(n) }

将在列表理解中的k处抛出错误。 所以k必须超出列表理解的范围,这是有道理的。

可以用这种方法定义G吗?

要忽略key's valuevalue列表中,你只要把验证您的列表理解

G = { k: [v for v in range(n) if v != k] for k in range(n) }

因此,对于n = 3您的图表G将返回: -

{0: [1, 2], 1: [0, 2], 2: [0, 1]}

暂无
暂无

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

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