如何使用dict理解条件替换键

时间:2019-04-16 18:16:47

标签: python dictionary-comprehension

我有字典

d={'user': 'bala', 'password': 'pass', 'filetype': 'as-parquetfile'}

所有键都应以--为前缀,filetype除外,应将其替换为--以获取

{'--user': 'bala', '--password': 'pass', '--': 'as-parquetfile'}

如果执行以下操作,我会收到语法错误。

{'--'+k:v if k!='filetype' else '--':v for (k,v) in d.items()}

2 个答案:

答案 0 :(得分:6)

dict理解的key: value部分没有表达式,因此您不能直接使用三元运算符。您可以执行以下操作:

{('--'+k if k!='filetype' else '--'): v for (k,v) in d.items()}

答案 1 :(得分:2)

我喜欢使用的肮脏方式:

d = {'user': 'bala', 'password': 'pass', 'filetype': 'as-parquetfile'}
d = {"--" + (k, "")[k=="filetype"]: v for k, v in d.items()}
d
>>> {'--': 'as-parquetfile', '--password': 'pass', '--user': 'bala'}