zoukankan      html  css  js  c++  java
  • python中推导式创建序列

    1、列表推导式

      列表推导式生成列表对象,语法如下: [ 表达式  for item  in  可迭代对象]   

                     或者    [ 表达式  for item  in  可迭代对象  if  条件判断]  

    >>> [x*2 for x in range(1,5)]
    [2, 4, 6, 8]
    >>> [x*2 for x in range(1,20) if x%5==0]
    [10, 20, 30]

    2、字典推导式

      字典的推导式生产字典对象,格式如下:{key_expression :value_expression   for  表达式  in  可迭代对象}   

    统计下面文本中字符出现的次数

    >>> my_text = "i love you,i love python,i love world"
    >>> char_count = {c:my_text.count(c) for c in my_text}
    >>> char_count
    {'i': 3, ' ': 6, 'l': 4, 'o': 6, 'v': 3, 'e': 3, 'y': 2, 'u': 1, ',': 2, 'p': 1, 't': 1, 'h': 1, 'n': 1, 'w': 1, 'r': 1, 'd': 1}

    3、集合推导式

      集合推导式生产集合,它和列表推导式的语法格式类似: {表达式  for item  in  可迭代对象}

                             或者    {表达式  for item  in  可迭代对象  if  条件判断}

    4、生成器推导式(生产元组)

      一个生成器只能运行一次,第一次迭代可以得到数据,第二次迭代发现数据已经没有了。

    >>> gnt = (x*2 for x in range(1,5))
    >>> gnt
    <generator object <genexpr> at 0x0000029ADC1AC0C0>
    >>> tuple(gnt)
    (2, 4, 6, 8)
    >>> tuple(gnt)
    ()

      

  • 相关阅读:
    Tomcat日志、项目中的log4j日志、e.printStackTrace()——我的日志最后到底跑哪去了?
    MySQL中有关TIMESTAMP和DATETIME的总结
    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
    @RequestBody和@RequestParam区别
    Synchronized的jvm实现
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
  • 原文地址:https://www.cnblogs.com/gaojr/p/12130397.html
Copyright © 2011-2022 走看看