zoukankan      html  css  js  c++  java
  • python中字典一键多相同值反转技巧

    >>> some_dict = {('D', 15, 30): 'D', ('F', 15, 16): 'F', ('F', 17, 22): 'F', ('F', 23, 26): 'F', ('F', 27, 30): 'F', ('A', 2, 4): 'A', ('A', 5, 9):  
    ... 'A', ('A', 10, 13): 'A', ('A', 14, 30): 'A', ('B', 15, 30): 'B', ('C', 15, 30): 'C'}
    >>> rev_multidict = {}
    >>> for key,value in some_dict.items():
    ...     rev_multidict.setdefault(value,set()).add(key)
    ... 
    >>> rev_multidict
    {'D': {('D', 15, 30)}, 'F': {('F', 23, 26), ('F', 15, 16), ('F', 17, 22), ('F', 27, 30)}, 'A': {('A', 14, 30), ('A', 2, 4), ('A', 10, 13), ('A', 5, 9)}, 'B': {('B', 15, 30)}, 'C': {('C', 15, 30)}}
    >>> [key for key,values in rev_multidict.items() if len(values) > 1]
    ['F', 'A']
    >>> [values for key,values in rev_multidict.items() if len(values) >1]
    [{('F', 23, 26), ('F', 15, 16), ('F', 17, 22), ('F', 27, 30)}, {('A', 14, 30), ('A', 2, 4), ('A', 10, 13), ('A', 5, 9)}]
    >>> set(chain.from_iterable(values for key,values in rev_multidict.items() if len(values) > 1))
    >>> from itertools import chain
    >>> set(chain.from_iterable(values for key,values in rev_multidict.items() if len(values) > 1))
    {('F', 23, 26), ('F', 15, 16), ('A', 10, 13), ('A', 14, 30), ('F', 17, 22), ('A', 2, 4), ('A', 5, 9), ('F', 27, 30)}
    >>> type(set(chain.from_iterable(values for key,values in rev_multidict.items() if len(values) > 1)))
    <class 'set'>
    >>> for i in set(chain.from_iterable(values for key,values in rev_multidict.items() if len(values) > 1)):
    ...     print(i)
    ... 
    ('F', 23, 26)
    ('F', 15, 16)
    ('A', 10, 13)
    ('A', 14, 30)
    ('F', 17, 22)
    ('A', 2, 4)
    ('A', 5, 9)
    ('F', 27, 30)
    >>> 
    
  • 相关阅读:
    BZOJ4416 SHOI2013阶乘字符串(状压dp)
    雅礼集训 Day2 T3 联盟 解题报告
    雅礼集训 Day1 T2 折射
    雅礼集训 Day1 T1 养花
    P1494 [国家集训队]小Z的袜子/莫队学习笔记(误
    洛谷 P2155 [SDOI2008]沙拉公主的困惑 解题报告
    动态MST
    洛谷 P2606 [ZJOI2010]排列计数 解题报告
    牛客 2018NOIP 模你赛2 T2 分糖果 解题报告
    洛谷 P3396 哈希冲突 解题报告
  • 原文地址:https://www.cnblogs.com/Richardo-M-Q/p/14886481.html
Copyright © 2011-2022 走看看