标签:打印 def 比较 lis res 条件判断 内存 == 迭代器
1、三元表达式
针对 if 条件判断的简写
可以比较下比如:
def max2(x,y): if x > y: return x else: return y max2(20,30) ================================================= x=10 y=20 res=x if x > y else y print(res)
真正的核心代码从4条变成了一条就可以解决了
代码形式:条件成立时的返回值 if 条件 else 条件不成立时的返回值
2、 列表生成式
也是简写代码的一种
咱们按照上面的套路举例
names=[‘jxx‘,‘yxx‘,‘cxx‘] #这是咱们之前学过的知识运用 l=[] for name in names: if name != ‘yxx‘: l.append(name + ‘SB‘) names=l #列表生成式 names=[name+‘SB‘ for name in names if name != ‘yxx‘] print(names)
代码形式: [ 所要执行的代码 左边 for 循环 右边 if 判断]
3、字典生成器
在说字典解释器之前我先介绍下一个函数
zip()称之为拉链函数 故名思意 就是把两个元素 链在一起
s1=‘hello‘ l1=[1,2,3,4,5] res=zip(s1,l1) #而res在python3中不是一个值而是一个迭代器对象 print(res) print(list(res)) 生成的是 [(‘h‘, 1), (‘e‘, 2), (‘l‘, 3), (‘l‘, 4), (‘o‘, 5)]
接下来我们来演示字典生成器
keys=[‘name‘,‘age‘,‘sex‘] values=[‘egon‘,18,‘male‘] #常规的代码 d={} for k,v in zip(keys,values): d[k]=v print(d) #字典生成器的代码 d={k:v for k,v in zip(keys,values)} print(d) 显示的是 {‘name‘: ‘egon‘, ‘age‘: 18, ‘sex‘: ‘male‘}
4、生成器表达式
本身就是迭代器
l=[‘egg%s‘ %i for i in range(100)] print(l) 这个会直接把值全部打印出来 如果数据过大 会导致内存吃不消 g=(‘egg%s‘ %i for i in range(1000000000000)) print(g)#迭代器对象 print(next(g)) print(next(g)) 一个一个取出来
标签:打印 def 比较 lis res 条件判断 内存 == 迭代器
原文地址:https://www.cnblogs.com/zuozhengjun/p/9178884.html