文章目录
一、三元表达式
值1 if 条件 else 值2
二、各种生成式
1.列表生成式
用于快速生成需要的列表
[列表元素 for 元素 in 数据集 if 生成条件]
if 条件可不写
print([i for i in range(10) if i >3])
2.字典生成式
用于快速生成需要的字典
{字典key:字典value for 元素 in 数据集 if 生成条件}
if 条件可不写
print({i:i+1 for i in range(10) if i >3})
3.集合生成式
用于快速生成需要的集合
{集合元素 for 元素 in 数据集 if 生成条件}
if 条件可不写
print({i for i in range(10) if i >3})
三、匿名函数
没有函数名的函数使用了lambda关键字进行创建
可以省略一些简单函数的编写,提高可读性
def sum1(a, b, c, d):
return a + b + c + d
sum2 = lambda a, b, c, d: a+b+c+d
print(sum1(1,2,3,4))
print(sum2(1,2,3,4))
四、常见内置函数(上)
1.map
快速映射出符合条件一个数据集,返回的结果是迭代器,映射条件函数可用匿名函数生成
def change(k):
k = k + "kk"
return k
l1 = {"k1": "11", "k2": "22"}
print(list(map(change, l1.values())))
2.zip
可以将作为参数的几个数据集组装起来,可迭代对象长度以元素最少的一个参数为主
l1 = ["bbc", "ddc", "aac"]
l2 = [12, 11, 10, 9, 8]
k1 = [16.1, 18.1, 19.0]
k2 = [True, True, True, False]
print(list(zip(l1,l2,k1,k2)))
3.filter
从数据集中过滤出需要的元素
def condition(n):
return n % 2 > 0
l1 = [1, 2, 3, 4, 5, 6, 7]
print(list(filter(condition, l1)))
4.bytes
将对应数据转换为对应编码的bytes对象
l1 = "1313你们都是好朋友, good friends"
print(bytes(l1, "utf-8"))
5.reduce
以前是内置函数现在在functools中
作用是将所有元素归总(可以使求和、差等)
def kl(x, y):
return x / y
ll = [36,2,2,2,2,2]
print(reduce(kl, ll))
6.abs
获取绝对值
s = -124
print(abs(s)) #124
7.all、any
all参数中没有0或False时返回True
any参数中至少有一个0或True时返回True
l = [0, 1, 2, True, False]
ll = [1, 1, 2, True, True]
print(any(l))
print(any(ll))
print(all(l))
print(all(ll))
8.bin、 oct、 hex
bin将数字转换为二进制字符串
oct将数字转换为八进制字符串
hex将数字转换为十六进制字符串
l = 666
print(bin(l))
print(oct(l))
print(hex(l))
9.bytes
将字符串转换为对应编码的bytes对象
str = "奥术大师 asdasdda 1232456121"
print(bytes(str, encoding="utf8"))
10.callable
判断对象是否可以加括号调用
name = "123456"
def get_name():
return "get name"
print(callable(get_name))
print(callable(name))
11.chr、ord
chr将对应的数字转换为字符,转换规则参照ascii码表
ord将对应字符转换为数字,转换规则参照ascii码表
print(chr(97)) # a
print(ord("a")) # 97
12.dir
返回对象的内置方法
print(dir(dict))
13.divmod
将第一个参数与第二个参数做取余,返回俩个指第一个是商,第二个是余数
print(divmod(256, 50)) # (5, 6)
14.enumerate
对传入对象进行枚举
每个元素对应一个序号可设置起始编号
l = ["bbc", "kkc", "llc"]
for i,j in enumerate(l):
print(i, j)
for i,j in enumerate(l, start=1):
print(i, j)
15.eval、exec
eval只能运行简单逻辑的python代码
exec可以运行有一定逻辑的python代码
str1 = "print('take my money')"
str3 = "for i in range(10): print(i)"
eval(str1)
exec(str1)
exec(str3)