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)
()

  

原文地址:https://www.cnblogs.com/gaojr/p/12130397.html