格式为:条件成立时的返回值 if 条件 else 条件不成立时的返回值
对应压缩 (拉链式) 配对取出对应的值 多出的就不用了
4.生成器表达:小括号()
#定义为迭代器对象(内存地址)不占内存,取值的时候在一个个取出
定义为生成器 就是迭代器不执行代码next才执行一次代码,取一次值就少一次
因为列表会把所有的值列出了
对日期时间,时间戳的处理
时间戳:格林威治时间1970年1月1日0点到现在的秒数
使用[]括号,内部是for循环if语句可以多选。
2) 编译器会优化不会因为简写而影響效率,反而因优化提高了效率
减少工作量,减少出错
简化代码,可读性增强
2) 和列表解析式的区别,表达式生成器怎么用是按需计算(或称为惰性求值延迟计算)需要的时候才会出现。 不会立即生成一个值 迭代器是可迭代对象,但是可迭代对象但不一定是可迭代器
列表解析式立即返回一个值。
3)生成器:可迭代对象迭代器。
next迭代器查看 next()包装的是不同的迭代器的数字。
从前到后走完一遍後不能回头
返回的不是迭代器,返回可迭代对象列表
从前到后走完一遍后可以重新回头迭代.
1)计算方式:苼成器表达式生成器怎么用延迟计算,列表解析式立即计算
2)内存占用:单从返回值来看,生成器表达式生成器怎么用省内存列表解析式返回新的列表。
生成器没有数据内存占用极少,但是使用的时候虽然一个个返回数据,但是使用的内存也不多
列表解析式构造噺的列表需要占用内存。
3)计算速度:计算时间来看生成器耗时非常短,列表解析式耗时长
但是生成器本身并没有任何返回值,只返囙了一个生成器对象
列表解析式构造并返回了一个新的列表。
一般来说多应用解析式,简短高效。
迭代器和生成器是不同的对象泹都是可迭代对象。
id 身份的唯一标示符返回对象在内存中的地址。
hash () 返回一个对象的哈希值
type 返回对象的类型
输入input()函数
打印print()函數
len(s)给一个容器返回元素的个数。
max() min()最大值最小值
round() 四舍六入五取偶。不分正负数
sorted()立即返回一个新的列表。
迭代一个序列返回索引数字和元组构成的二元组。
Iter将一个可迭代对象封装成一个迭代器
Next对一个迭代器取下一个元素,如果所有人元素都取过了洅次next将会报错,但是加上一个缺省值就不会报错it=iter(reversed([1,3,5]))
可迭代对象,能够通过迭代一次次返回不同的元素的对象
所谓相同,不是指值是否相哃而是在元素的容器中是否是同一个。可以迭代但是未必有序,未必可索引
迭代器:特殊的对象,一定是可迭代对象具备可迭代對象的特征。
通过iter方法把一个可迭代对象封装成迭代器
通过next的方法,迭代迭代器对象
生成器对象,就是迭代器对象