推导式
推导式是从一个或者多个迭代器快速简洁地创建数据结构的一种方法。它可以避免语法冗长的代码
列表推导式
- 通过列表推到创建一个整数列表
number_list = [number for number in range(1,10)]
>>> number_list
[1, 2, 3, 4, 5, 6, 7, 8, 9]
- 带条件的列表推导式
[expression for item in iterable if condition]
>>> a_list = [num for num in range(1,100) if num%2==1]
>>> a_list
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]
- for 循环推导式
- 普通模式
>>> for row in rows:
... for col in cols:
... print(row,col)
...
1 1
1 2
2 1
2 2
3 1
3 2
- 使用一次推导
>>> rows = range(1,5)
>>> cols = range(1,10)
>>> row = ()
>>> col = ()
>>> cells = [(row,col) for row in rows for col in cols]
>>> for i in cells:
... print(i)
- 字典推导式
{key_expression:value_expressionf for expression in iterable}
>>> word = 'letters'
>>> letter_counts = {letter:word.count(letter) for letter in word}
>>> letter_counts
{'l': 1, 'e': 2, 't': 2, 'r': 1, 's': 1}
程序中,先对字符串'letters'中出现的字母进行循环,计算出每个字母出现的次数。
-
集合推导式
{expression for expression in iterable} -
生成器推导式
元组时没有推导式的,圆括号之间的是生成器推导式,返回一个生成器对象- 一个生成器只能运行一次。列表、集合、字符串和字典都存储在内存中,生成器仅在运行中产生值,不会被存下来。所以不能重新使用或者备份一个生成器
网友评论