在字典中,我想確保特定的鍵具有特定的編碼。爲什麼是這個SyntaxError? (Python,帶內聯if的詞典理解)
test_dictionary = { k:v.encode('latin-1') if k=="test_key" else k:v for k,v in test_dictionary.items() }
我得到SyntaxError
。我預計這將被允許。
在字典中,我想確保特定的鍵具有特定的編碼。爲什麼是這個SyntaxError? (Python,帶內聯if的詞典理解)
test_dictionary = { k:v.encode('latin-1') if k=="test_key" else k:v for k,v in test_dictionary.items() }
我得到SyntaxError
。我預計這將被允許。
嘗試此代替:
test_dictionary = { k:v.encode('latin-1') if k=="test_key" else v for k,v in test_dictionary.items() }
第二:
已被除去,從而內嵌if
任一編碼v
,或離開它,因爲它是取決於條件。
爲了澄清我已經添加括號下面的表達,使之更清楚,這是列表解析的「價值」的部分:
{ k: (v.encode('latin-1') if k=="test_key" else v) for k,v in test_dictionary.items() }
^___________________________________________^
作爲參考:[條件表達式語法](HTTPS:/ /docs.python.org/3/reference/expressions.html#conditional-expressions)和[Dict理解語法](https://docs.python.org/3/reference/expressions.html#dictionary-displays) – unutbu