除了咱们以前所学习的列表推导式和生成器表达式以外,还有字典推导式、集合推导式等等。python
下面就是一个以列表推导式为例的推导式详细格式,一样适用于其余推导式。函数
variable = [out_exp_res for out_exp in input_list if out_exp == 2] out_exp_res: 列表生成元素表达式,能够是有返回值的函数。 for out_exp in input_list: 迭代input_list将out_exp传入out_exp_res表达式中。 if out_exp == 2: 根据条件过滤哪些值能够。
例一:30之内全部能被3整除的数学习
multiples = [i for i in range(31) if i % 3 == 0] print(multiples)
例二:30之内全部能被3整除的数的平方spa
multiples = [i ** 2 for i in range(31) if i % 3 == 0] print(multiples)
例三:找到嵌套列表中名字含有两个“e“的全部名字blog
names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'], ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']] print([name for lst in names for name in lst if name.count('e') >= 2]) # 注意遍历顺序,这是实现的关键
例一:将一个字典的key和value对调ip
mcase = {'a': 10, 'b': 34} mcase_frequency = {value:key for key, value in mcase.items()} print(mcase_frequency)
例二:合并大小写对应的value值,将k统一成小写get
mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3} mcase_frequency = {k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) for k in mcase.keys()} print(mcase_frequency)
例:计算列表中每一个值的平方,自带去重功能input
squared = {x**2 for x in [1, -1, 2]} print(squared)