一: 列表推导式
表现形式:[变量(加工后的数据) for 变量 i in 可迭代的数据类型]
例一: 30 以内所有能被 3 整除的数
- multiples = [i for i in range(30) if i % 3 is 0]
- print(multiples)
- # Output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
例二: 30 以内所有能被 3 整除的数的平方
- l1 = [i * *2
- for i in range(1, 31) if i % 3 == 0] print(l1)
例三: 找到嵌套列表中名字含有两个 e 的所有名字
- names = [[Tom, Billy, Jefferson, Andrew, Wesley, Steven, Joe], [Alice, Jill, Ana, Wendy, Jennifer, Sherry, Eva]] l1 = [name
- for i in names
- for name in i
- if name.count("e") == 2] print(l1)
ps: 把列表解析的 [] 换成 () 得到的就是生成器表达式, 其中, 列表推导式比较直观, 占内存, 生成器表达式不容易看出内容, 省内存.
- l1=(i**2 for i in range(1,31) if i%3==0)
- print(l1) #<generator object <genexpr> at 0x000001DE23D4DE58>
- print(l1.__next__())
二: 字典推导式
例一: 将一个字典的 key 和 value 对调
- mcase = {a: 10, b: 34}
- mcase_frequency = {mcase[k]: k for k in mcase}
- print(mcase_frequency)
三: 集合推导式
计算列表中每个值的平方, 自带去重功能
- squared = {x**2 for x in [1, -1, 2]}
- print(squared)
- # Output: set([1, 4])
四: python 中的内置函数
1,print 的用法
- #1, 去掉换行符
- print(666,end=)
- print(666)
- #2, 添加分割符
- print(1,2,3,4,5,sep=|) #1|2|3|4|5
- #3, 写入文件
- f = open(file,w,encoding=utf-8)
- print(666,file=f)
- f.close()
- 2,
locals() 将局部的变量储存起来
globals() 将全局的变量, 函数名, 等等 储存起来.
- def func():
- name = alex
- print(locals())
- print(globals())
- func()
3 , help(xxx) 将你查询的对象所有信息都拿出来.
4 , abs()取绝对值
- print(abs(-1))
- print(abs(1))
5, 最大值和最小值
- #1 求绝对值最大的数
- ret = max(1,2,-3,key=abs)
- print(ret)
- #2 求最小值
- ret = min([1,2,3])
- print(ret)
6,sum 求和
- a=sum([1,2,8])
- print(a)
- # 计算列表中的和, 再附加一个数的和
- ret = sum([1,2,3],10)
- print(ret)
7,callable 判断此变量是不是函数名
- name = alex
- print(callable(name))
- def func():
- print(666)
- print(callable(func))
8, hash() 通过哈希表的规则, 将对象转换成哈希值
- print(hash(fdsakfhdsafsda))
- print(hash(fd))
- print(hash((a,b)))
- print(hash(True))
9, all 可迭代对象里面的所有的值转化成 bool 值如果都是 True 则, 返回 True
print(all([1, 2, 3, 0]))
10, 进制转换
- # 十进制转化成二进制
- print(bin(100))
- # 将十进制转化成八进制
- print(oct(9))
- # 将十进制转化成十六进制
- print(hex(33))
11, 数据类型 float ,complex(复数)
- print(1.35432,type(1.35432))
- print(float(3))
12, divmod() 分页
print(divmod(7, 2))# (商, 余数)
13, enumerate(iterable,start 起始值) 枚举
l = [手机, 电话, 娃娃, ]
- for k,
- v in enumerate(l, 1) : print(k, v)
14, eval 有返回值 除去字符串两边的引号, 返回里面的内容
exec 没有返回值 除去字符串两边的引号, 执行里面的代码
- s = "{name:alex}"
- print(eval(s),type(eval(s))) #{name: alex} <class dict>
- s1 = "1+2+3+4"
- print(eval(s1)) #10
- code = for i in range(10):
- print(i)
- exec(code)
来源: http://www.bubuko.com/infodetail-2490996.html