如何使用dict理解有条件地替换密钥

问题描述 投票:1回答:2

我有一本字典

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

如果我执行以下操作,则会出现语法错误。

key: value
python dictionary-comprehension
2个回答
6
投票

字典理解中的{('--'+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'}


2
投票

我喜欢使用的脏方法:

qazxswpoi
© www.soinside.com 2019 - 2024. All rights reserved.