zoukankan      html  css  js  c++  java
  • python 字典中 重复值去除


    tuple_r_dict = lambda _dict: dict(val[::-1] for val in _dict.items()) # Python3.x tuple_r_dict(tuple_r_dict(z))




    整理一下相关知识

    1、lambda 匿名函数,冒号前为参数,个数可以有0个或多个,冒号右边为返回值
       lambda [arg1 [, agr2,.....argn]] : expression

            lambda [参数1[参数2,...]]:返回值

    1 f1=lambda x:x+1
    2 print('f1(2):',f1(2))
    3 
    4 f2=lambda :'a'
    5 print('f2(2):',f2())
    6 
    7 #输出
    8 #f1(2): 3
    9 #f2(): a

     tuple_r_dict = lambda _dict: dict(val[::-1] for val in _dict.items())

    这句表明创建一个匿名函数

    输入:_dict

    输出:dict(val[::-1] for val in _dict.items())

    2、 dict()
        dict()生成一个字典

    3、 _dict.items()

        dict.items()返回字典的(键,值)元组对的列表

    1 dic={7:'d',9:'s',5:'a'}
    2 print('dic:',dic)
    3 print('dic.items():',dic.items())
    4 
    5 #输出
    6 #dic: {9: 's', 5: 'a', 7: 'd'}
    7 #dic.items(): dict_items([(9, 's'), (5, 'a'), (7, 'd')])

    4、val[::-1]

       把元组对顺序对调

      (1,'A')[::-1]  => ('A',1)

      L[1,2,3,4,5][:4:2] => [1,3] #取列表中的前4个数,步长为2//第一个冒号左右两边代表在这个列表中的截取范围,第二个冒号右边代表截取范围内每2个取一个数

    总结:

    生成一个匿名函数,函数返回一个字典dict(val[::-1] for val in _dict.items())

    _dict.items()先返回原字典的(键,值)元组对列表

    val[::-1] for val in _dict.items() 遍历列表,把列表中的每个元组对中两个值位置对调

    dict()把列表转变为字典

    至此,生成的新字典的键为旧字典的键值,新键值为旧字典的键。利用字典的键唯一性,去除旧字典的重复键值。

    再执行一次tuple_r_dict(tuple_r_dict(z)),把键值对再对调回来

  • 相关阅读:
    ionic 刷新页面的几种方法
    Highcharts中如何外部修改pointStart
    前端分页 思路
    快捷选时间
    获取今天,昨天,本周,上周,本月,上月时间
    angularjs 弹出框 $modal
    SQL 查找存在某内容的存储过程都有哪些
    LINQ to SQL和Entity Framework
    SQL模糊查询条件的四种匹配模式
    数据库--中文表名及字段名的优缺点
  • 原文地址:https://www.cnblogs.com/congyinew/p/6562343.html
Copyright © 2011-2022 走看看