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

Python 如何使用dict理解有条件地替换键,python,dictionary-comprehension,Python,Dictionary Comprehension,我有一本字典 d={'user': 'bala', 'password': 'pass', 'filetype': 'as-parquetfile'} 除文件类型外,所有键的前缀都应为--,文件类型应替换为--,以获取 {'--user': 'bala', '--password': 'pass', '--': 'as-parquetfile'} 如果我执行以下操作,我会得到语法错误 {'--'+k:v if k!='filetype' else '--':v for (k,v) in d.

我有一本字典

d={'user': 'bala', 'password': 'pass', 'filetype': 'as-parquetfile'}
除文件类型外,所有键的前缀都应为
--
,文件类型应替换为
--
,以获取

{'--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()}

dict理解的
键:值
部分没有表达式,因此不能直接使用三元运算符。你能做的是:

{('--'+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'}

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

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

@pault你会这样认为,但请看问题中的要求。@pault你会这样认为,但请看问题中的要求。使用True和False作为元组的索引值是明智的,但可读性较差使用True和False作为元组的索引值是明智的,但可读性较差