zoukankan      html  css  js  c++  java
  • Python 推导式(列表推导式,字典推导式,集合推导式)

    Python的各种推导式

    推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导。

    • 列表推导式

    • 字典推导式

    • 集合推导式

    列表推导式

    1.使用[]生成list

    var = [out_exp_put for out_exp in input_list if out_exp == 2]
    out_exp_put      列表生成出来的表达式,可以是有返回值的函数。
    for out_exp in input_list   迭代input_list将out_exp传入out_exp_put中。
    if out_exp == 2    根据条件过滤哪些值是符合条件的。
    

    例子一:

    multiples = [i for i in range(30) if i % 3 is 0]
    print(multiples)
    #结果
    [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
    

    例子二:

    def squared(x):
    	return x*x
    multiples = [squared(i) for i in range(30) if i % 3 is 0]
    print multiples
    #结果
    [0, 9, 36, 81, 144, 225, 324, 441, 576, 729]
    

    2.使用()生成generator

    将列表推导式的[]改成()即可得到生成器。

    multiples = (i for i in range(30) if i % 3 is 0)
    print(type(multiples))
    #结果
    <type 'generator'>
    

    字典推导式

    字典推导和列表推导的使用方法是类似的,只不过中括号该改成大括号。

    例子一:

    mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}
    mcase_frequency = {
    	k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0)
    	for k in mcase.keys()
    	if k.lower() in ['a','b']
    }
    print mcase_frequency
    #结果
    {'a': 17, 'b': 34}
    

    例子二:

    mcase = {'a':10,'b':34}
    mcase_frequency = {v:k for k,v in mcase.items()}
    print mcase_frequency
    #结果
    {10:'a',34:'b'}
    

    集合推导式

    跟列表推导式类似,区别在于使用的是大括号{}

    squared = {x**2 for x in [1, 1, 2]}
    print(squared)
    #结果
    set([1, 4])
    

    转载自:https://www.cnblogs.com/tkqasn/p/5977653.html

  • 相关阅读:
    linux下shell显示-bash-4.1#不显示路径解决方法
    update chnroute
    An error "Host key verification failed" when you connect to other computer by OSX SSH
    使用dig查询dns解析
    DNS被污染后
    TunnelBroker for EdgeRouter 后记
    mdadm详细使用手册
    关于尼康黄的原因
    Panda3d code in github
    Python实例浅谈之三Python与C/C++相互调用
  • 原文地址:https://www.cnblogs.com/jiajiaba/p/10660409.html
Copyright © 2011-2022 走看看