代码之家  ›  专栏  ›  技术社区  ›  U13-Forward

分割键的最佳方法:在字典中将值对分成两对-python

  •  1
  • U13-Forward  · 技术社区  · 6 年前

    假设我有一本字典:

    d={'a-b':[1,2,3],'c-d':[4,5,6]}
    

    我想把钥匙分开 'a-b' 分为两个键作为 'a' 'b' ,并保持两个等的值相同。。。

    {'a': [1, 2, 3], 'b': [1, 2, 3], 'c': [4, 5, 6], 'd': [4, 5, 6]}
    

    我知道我能做到(感谢@Netwave):

    d={'a-b':[1,2,3],'c-d':[4,5,6]}
    newd={}
    for k,v in d.items():
        x,y=k.split('-')
        newd[x]=v
        newd[y]=v
    print(newd)
    #{'a': [1, 2, 3], 'b': [1, 2, 3], 'c': [4, 5, 6], 'd': [4, 5, 6]}
    

    但我不认为这是有效的,

    1 回复  |  直到 6 年前
        1
  •  4
  •   Netwave    6 年前

    只用 split

    for k,v in d.items():
        x, y = k.split("-")
        newd[x] = v
        newd[y] = v
    

    或反复浏览:

    for k,v in d.items():
        for new_k in k.split("-")
            newd[new_k] = v
    

    作为一种口述理解:

    {new_k : v for k,v in d.items() for new_k in k.split("-")}