代码之家  ›  专栏  ›  技术社区  ›  Bala

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

  •  1
  • Bala  · 技术社区  · 6 年前

    我有一本字典

    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 回复  |  直到 6 年前
        1
  •  6
  •   L3viathan gboffi    6 年前

    这个 key: value dict理解的一部分是没有表达式,所以不能直接使用三元运算符。你能做的是:

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

        2
  •  2
  •   Lante Dellarovere    6 年前

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