如何使用字典理解有条件地替换键
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'}
我有字典
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'}