如何使用字典理解有条件地替换键

How to conditionally replace a key using dict 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()}

dict理解的key: value部分是无表达式的,不能直接用三元运算符。你可以做的是:

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

我喜欢用的一种肮脏的方式:

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'}