zoukankan      html  css  js  c++  java
  • Python中map,filter,reduce,zip的应用

    事例1:

    l=[('main', 'router_115.236.xx.xx', [{'abc': 1}, {'dfg': 1}]),
        ('main', 'router_183.61.xx.xx', [{'abc': 0}, {'dfg': 1}]),
        ('main', 'router_52.11.xx.xx', [{'abc': 0}, {'dfg': 1}]),
        ('main', 'router_183.17.xx.xx', [{'abc': 1}, {'dfg': 1}])
        ]
    

    检查参数l列表中所有item的第二项([{'abc': 1}, {'dfg': 1}])是否相等
    for的做法

    a=l[0][2]
    flag=1
    for i in l:
        if a==i[2]:
            continue
        else:
            flag=0
            break

    高级的做法:

    a=map(lambda x:x[2],l)
    r=reduce(lambda x,y:x if x==y else False,a)

    事例2:

    a=[{'a':1},{'b':11},{'c':12},{'d':11}]
    b=[{'e':14},{'f':17},{'g':18},{'h':41}]

    把所以数据合并成一个字典
    一般的做法:

    a=a+b
    c={}
    for i in a:
        c.update(i)
    print c

    高级的做法

    def _func(x,y):
        x.update(y)
        return x
    c=reduce(_func,a)

    事例3:

    取出一个列表中重复的元素

    a = [1,2,3,4,4,5,5,6,9]
    b=filter(lambda x:True if a.count(x)>1 else False,a)
    c=list(set(b))

    输出结果为  [4,5]

  • 相关阅读:
    GitHub入门之一:使用github下载项目
    Android Fragment 真正的完全解析(下)
    Android Fragment 真正的完全解析(上)
    c# 发送邮件
    SmartThreadPool
    虚拟机
    相关系数
    为枚举类型添加说明 zt
    MD5
    hashcode
  • 原文地址:https://www.cnblogs.com/Xjng/p/3820845.html
Copyright © 2011-2022 走看看