簡體   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