是否有可能在dictcomp
中使用else
語句(如果是,怎麼辦?)?if-else在詞典理解中
這是不可能使用else
的理解本身的一部分(見this),但至少在list
和set
內涵,可以使用conditional_expression
(見this)。
listcomp
的示例是here。
我的示例代碼:
converters = {"id": int}
rows = [{"id": "1", "name": "foo"}, {"id": "2", "name": "bar"}]
for row in rows:
row = {k: converters[k](v) if k in converters else k:v for k,v in row.items()}
print(row)
這是行不通的。
怪異的是,
row = {k: converters[k](v) if k in converters for k, v in row.items()}
也不管用,但它應該沒問題。
row = {k: converters[k](v) for k, v in row.items() if k in converters}
確實有效,但這不是我想要的結果。如上所述,
row = {k: converters[k](v) for k, v in row.items() if k in converters else k:v}
應該不起作用。
我知道我可以繞過使用兩個dictcomps的問題,但我想知道爲什麼這不起作用。