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