我试图在1行的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 value
从value
列表中,你只要把验证您的列表理解。
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]}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句