推导式

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:  根据条件过滤哪些值可以。
View Code

30以内所有能被3整除的数

print([ i for i in range(30) if i % 3 == 0])

30以内所有能被3整除的数的平方

print([ i*i  for i in range(30) if i % 3 == 0])

 求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表

print([(x,y) for x in range(5) if x%2==0 for y in range(5) if y %2==1] )

字典推导式

将一个字典的key和value对调

mcase = {'a': 10, 'b': 34}
mcase_frequency = {mcase[k]: k for k in mcase}
print(mcase_frequency)
View Code

合并大小写对应的value值,将k统一成小写

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)
View Code

集合推导式

计算列表中每个值的平方,自带去重功能

squared = {x**2 for x in [1, -1, 2]}
print(squared)
View Code

生成器推导式

g = (i  for i in range(30) if i % 3 == 0)   #节省内存
print(g.__next__())
print(g.__next__())
# for i in g:
#     print(i)
View Code

 

posted @ 2018-11-06 23:58  答&案  阅读(119)  评论(0编辑  收藏  举报