zoukankan      html  css  js  c++  java
  • python代码简写(推导式 if else for in)

    c = a if a>b else b    //如果a>b返回a,否则返回b
    >>> a = 1
    >>> b = 2
    >>> c = a if a>b else b
    >>> c
     
     
    c = [ i for i in a if i%2==0 ]  //遍历a,在i为偶数时返回
    >>> a = [1,2,3]
    >>> c = [i for i in a if i%2==0]
    >>> c
    [2]
    注意当你用上述方式生成列表,但又不引用而只是作为临时参数时,为减少内存开销,应将sum( [ i for i in a if i%2==0 ] )改成sum( i for i in a if i%2==0 ),
     
     
    生成集合:c = { i for i in a if i%2==0 }  //遍历a,在i为偶数时返回
    生成字典:c = { i:i**i for i in a if i%2==0 }  //遍历a,在i为偶数时返回
     
     
    c = [i+j for i in a for j in b if i%2==0 and j%2==0]    //同时嵌套遍历列表a和b,返回i和j同时为偶数时的和。其中for in a属于外层嵌套,for in b属于内层
    >>> a = [1,2,3]
    >>> b = [4,5,6]
    >>> c = [i+j for i in a for j in b if i%2==0 and j%2==0]
    >>> c
    [6, 8]
     
     
     
    c = [i if i%2==0 else 1 for i in a]  //遍历a,如果i为偶数直接返回,否则直接返回1。此处if写在for前面要求必须有else项
    >>> a = [1,2,3]
    >>> c = [i if i%2==0 else 1 for i in a]
    >>> c
    [1, 2, 1]
     
     
     
    a,b=b,a   //交换数据
    >>> a=1
    >>> b=2
    >>> a,b=b,a
    >>> a
    2
    >>> b
    1
     
     
     
    ''.join['1','2']  //字符list的连接
    >>> c = ''.join(['1','2'])
    >>> c
    '12'
     
    转自:http://blog.csdn.net/qq_16234613/article/details/64441428
    ---------------------------------------------------------------------------------
    推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种
     
    1.列表推导式也叫列表解析式。
    功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表
    格式:用中括号括起来,中间用for语句,后面跟if语句用作判读,满足条件的传到for语句前面用作构建先的列表
    [x**2 for item in item_list if item>2]
     
    例子:
     
    1 >>> li=[i*2 for i in range(10) if i % 2 == 0]
    2 >>> print li
    3  [0, 4, 8, 12, 16]
     
     
    很明显,列表解析式最擅长的方式就是对整个列表分别做相同的操作,并且返回得到一个新的列表,并不会直接返回,需要赋值给变量
     
    2.第二种是字典解析式,这个跟列表解析式的用法是差不多的,只不中括号该改成大括号,毕竟字典本身用的就是大括号。
    例子:
     
    1 #快速转换字典键值位置
    2 >>> mca={"a":1, "b":2, "c":3, "d":4}
    3 >>> dicts={v:k for k,v in mca.items()}
    4 >>> print dicts
    5 {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
     
     
    3.还有一种是集合推导式。
    功能:集合推导式跟列表推导式差不多,都是对一个列表的元素全部执行相同的操作,
    但集合是一种无重复无序的序列
    区别:跟列表推到式的区别在于:1.不使用中括号,使用大括号;2.结果中无重复;3.结果是一个set()集合,集合里面是一个序列
     
    1 >>> squared={i*2 for i in [1,1,2]}
    2 >>> print squared
    3 set([2, 4])
     
     
    转自:https://www.cnblogs.com/cenyu/p/5718410.html

    ---------------------------------------------------------------------------------

    关注微信公众号即可在手机上查阅,并可接收更多测试分享~

  • 相关阅读:
    屏蔽和开启”关机“功能
    资源管理器的自动完成功能
    js DOM(二)获取元素的方式、innerText、textContent、innerHTML、自定义属性
    js DOM(一)注册事件、修改标签属性和样式
    js ECMAscript(二)作用域,预解析,创建对象,内置对象
    旧create-react-app项目集成jest+enzyme
    create-react-app项目集成jest+enzyme测试react组件
    现代化前端测试
    puppeteer入门
    windows安装解压版redis
  • 原文地址:https://www.cnblogs.com/songzhenhua/p/9312708.html
Copyright © 2011-2022 走看看