三元运算符
格式:
真值结果 if 判断语句 else 假值结果
比如:
res = "大于0" if 10 > 0 else "小于0" print(res) # 大于0
列表解析
l = ["数字%s" % i for i in range(10)] ll = ["数字%s" % i for i in range(10) if i > 5] print(l) # ['数字0', '数字1', '数字2', '数字3', '数字4', '数字5', '数字6', '数字7', '数字8', '数字9'] print(ll) # ['数字6', '数字7', '数字8', '数字9']
第二种写法类似三元。
迭代器
迭代器协议和迭代器对象
迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一个,要么引起一个stoplteration异常,用来终止迭代。
迭代对象:实现了迭代器协议的对象(如果实现:对象内部定义了一个__iter__()方法,而__iter__又内置有__next__方法)
协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象。
比如:
a = "hello" b = a.__iter__() print(b) # <str_iterator object at 0x000001C1541CF860> print(b.__next__()) # h print(b.__next__()) # e print(b.__next__()) # l print(b.__next__()) # l print(b.__next__()) # o print(b.__next__()) # 报错