2013-03-12 47 views
1

請有人可以幫助我嗎? 我試圖使用檢查,如果B不存在,那麼ASIGN短版「」 或無,但我失去了編輯的東西Python有條件地創建一個字典的元素

>test = dict(s = b if b else '') 
>NameError: name 'b' is not defined 

:我知道B沒有定義,相反,我想找到一種方式來 創建一個值如果存在的字典或''如果不存在,我想要在短的方式做 ..謝謝

+0

Python不知道你指的是什麼,因爲'b'根本沒有被定義。 – BlackVegetable 2013-03-12 21:26:59

+0

「如果價值存在」是什麼意思?你如何在你的程序中創建's'的地方*,而不知道*是否已經定義了'b''? – 2013-03-12 22:01:17

回答

1

您尚未定義任何變量名爲b。這看起來可能是XY問題。你究竟在做什麼?插入字典?用一個元素創建一個新的?

+0

我不需要這個功能...無論如何感謝 – user1913878 2013-03-12 21:33:56

+0

我想要創建一個新的,它可以有多個元素,但首先我想要一個簡短的方法來做到這一點與一個元素來理解。 .. – user1913878 2013-03-12 22:02:42

1

您應該使用字典解析

d = {key: value for (key, value) in sequence if condition} 

而且BlackVegetable的評論是真實的,你還沒有定義b,所以Python不能使用它。

0

有人張貼這早些時候,然後將其刪除,但我測試,它的工作原理:

dict(s=b) if b else dict(s='')` 

如果bNone,上述行會工作。這就是我從這個問題所理解的,你想檢查是否存在。然後如果是這樣,你想要設置密鑰,否則爲''。

+1

'dict(s = b if b else None)'should also work。我刪除了我的答案,因爲如果沒有定義「b」,它仍然會中斷,正如其他人指出的那樣。 – msvalkon 2013-03-13 07:33:55