标签:语法糖 封装 类型转换 abc 区别 整数 优化 复杂 取整
类方法 strptime(date_string,foamat) ,返datetime对象
对象方法strftime(fotmat) ,返回字符串
字符串format函数格式化
datetime2= datetime1+datedelta datetime2=datetime1-datedelta timedelta=datetime1-datetime2 构造方法: datetime.timedelta(day=0,秒=0,微秒=0,毫秒=0,分=0 ,时=0,weeks=0) year= datetime.timedelta(day=365) total_seconds()返回时间差的总秒数 time: time.sleep(secs) 将调用线程挂起指定的秒数
l1=list(range(10)) l2=[] for i in l1: l2.append((i+1)**2)
l1=list(range(10)) l2=[(i+1)**2 for i in l1] print(l2)
[返回值 for 元素 in 可迭代对象 if 条件] 使用中括号[],内部是for循环,if条件语句可选 返回一个新列表
ret = [] for item in iterable: if cond1: if cond2: ret.append(expr)
20以内技能被2整除又能被3整除的数 [i for i in range(20) if i%2==0 and i%3==0] [i for i in range(20) if i%2==0 if i%3==0]
ret = [] for i in iterable1: for j in iterable2: ret.append(expr)
[(x, y) for x in ‘abcde‘ for y in range(3)] [[x, y] for x in ‘abcde‘ for y in range(3)] [{x: y} for x in ‘abcde‘ for y in range(3)]
(返回值 for 元素 in 可迭代对象 if 条件) 列表解析式的中括号换成小括号就是生成器表达式 返回一个生成器
生成器表达式时按需计算(‘惰性求值‘,延迟计算),需要的时候才计算值 列表解析式是立即返回值
计算方式:
生成器表达式延迟计算,列表解析式立即计算
内存占用:
单从返回值来说,生成器表达式省内存,列表解析式返回新列表
生成器没有数据,内存占用少,使用时,一个个返回数据,总体占用数据差不多
列表解析式构造新的列表需要占用内存空间
计算速度:
单看计算时间,生成器表达式耗时短,列解析式耗时长
但是生成器本身没有返回任何值,只返回了一个生成器对象
列表解析式构造返回了一个新的列表
一般来说 ,多用解析式,简短 高效
如果一个解析式非常复杂,难以理解,可以考虑拆解for循环
生成器和迭代器时不同的对象,但都是可迭代对象
id(value)
表示id
返回对象的唯一标识
哈希 hash()
返回一个对象的哈希值
类型type()
返回对象的类型
类型转换
float() int() bin() hex() oct() bool() list() tuple() dict() set() complex() bytes() bytearray(
输入input([prompt])
接收用户输入,返回一个字符串
打印 print(*objects, sep=‘ ‘, end=‘\n‘, file=sys.stdout, flush=False) 打印输出,默认使用空格分割,换行结尾,输出到控制台
对象长度 len(s)
返回一个集合类型的元素个数
isinstance(obj,class_or_tuple)
判断对象obj是否属于某种类型或者元组中列出的某个类型
isinstance(True,int)
issubclass(cls,class_or_tuple)
判断类型cls是否时某种类型的子类或元组中列出的某个类型的子类
issubclass(bool,int)
绝对值abs(x) x为数值
最大值 max() 最小值min()
返回可迭代对象中最大或最小值
返回多个参数中最大或最小值
round(x) 四舍五入六取整,rount(-0.5)
pow(x,y) 等同于x**y
range(stop)
从0开始到stop-1的可迭代对象;range(start,stop[,step])从start开始到stop-1步长为step的可迭代对象
divmod (x,y) 等价于 tuple(x//y,x%y)
sum(可迭代对象[,start]) 对可迭代对象的所有数值元素求和
sum(1,100,2)) 求1到100步进为2的元素的和值
chr()给定一个一定范围的整数返回对应的字符 chr(97)=a chr(20013)=中 ord()返回字符对应的整数 ord(‘a‘)=97 ord(‘中‘)=20013
sorted(可迭代对象[元素][reverse])排序
返回一个新的列表默认升序
reverse是反转
反转:
reversed(seq)
返回一个反转元素的迭代器
枚举: enumerate(seq, start=0) 迭代一个序列,返回索引数字和元素构成的二元组 star表示索引开始的数字,默认是0
迭代器和取元素 iter(可迭代对象)、next(可迭代对象)
iter 将一个可迭代对象封装成一个迭代器
next对一个迭代器取下一个元素,如果所有元素以取过,再次next会抛出StopIteration异常
能同过迭代一次次返回不同的元素的对象,所谓相同不是指值是否相同,而是元素在容器中是否是同一个,例如列表中的值可以重复 可以迭代,但是未必有序,未必可索引 可迭代对象有 : list tuple string bytes bytearray range set dict 生成器等 可以使用成员操作符in not in,in本质山就是在遍历对象
迭代器:
特殊的对象,一定是可迭代对象,具备可迭代对象的特征
通过iter法国法把一个可迭代对象封装成迭代器
通过next方法,迭代迭代器对象
生成器对象,就是迭代器对象
项拉链一样把多个可迭代对象合并在一起,返回一个迭代器
将每次从不同对象中取到的元素合并成一个元组
标签:语法糖 封装 类型转换 abc 区别 整数 优化 复杂 取整
原文地址:http://www.cnblogs.com/spidermansam/p/7637711.html