Python内置函数
python的内置函数:
abs
print(abs(-1)) # 取绝对值
print(abs(0)) # 取绝对值
all
all内部只有一个元素,内部是一个可迭代的对象
元组 列表形式的
print(all([])) # 里面是可迭代对象 空返回true
print(all((1,''))) # 里面是可迭代对象 依次取内部的x进行bool运算,只有所有的全部为True 这里字符串为空,返回false
print(all((1,[]))) # 里面是可迭代对象 依次取内部的 空是false
print(all((1,2,' ',None))) #字符串的空格是True None是false
生成器方式:
(for i in range(100)) # 这是一个生成器对象,
print(all(i for i in range(1,3))) # 内部是生成器,容易出错的是加上括号
any
any是有任何一个的bool值是True,返回值是True,空返回的是false
print(any([]))
print(any([None,0,'',{},1]))
bin
print(bin(10)) # 十进制转换成二进制
bool
空的情况:0、空字符串、空字典、空列表、None、
print(bool(0))
print(bool(''))
print(bool(None))
print(bool([]))
返回值都是false
bytes
print(bytes('hello',encoding='utf-8'))
b'hello'
callable
查看能否被调用
# 可以被调用
def test():
pass
print(callable(test))
能被调用,返回True
chr
print(chr(65))
ord
print(ord('A'))
complex
x = complex(1-2j)
print(x.real) # 复数的实部
print(x.imag) # 复数的虚部
不可变字典 不能增删改查
x = frozenset({1,2,3,4})
print(x)
dir
查看sum可以调用的方法,返回值是列表的形式
print(dir(sum))
print(divmod(10,3)) # 整除和取余数 用于分页,第一个是整除,第二个是取余数
enumerate
# d = enumerate(['a','b','c'])
# d.__iter__()
# d.__next__() # 是迭代器
# for i in enumerate(['a','b','c']): #
# print(i)
hash
s1修改后,hash的值会改变,hash有不同的方法,MD5,SHA
s1 = "123"
print(hash(s1))
s1 = "456"
print(hash(s1))
``
### id ###
```python
print(id("123")) # 身份
x = 'a'
y= 'a'
print(id(x))
print(id(y))
print(x is y)
结果是一样的
hex
十进制转换成16进制
max
max内部是可迭代的对象iternable
slaries ={
"a":10000000,
"b":2000000,
"c":300000,
"d":40000
}
def get_value(k):
return slaries[k] # 针对的是字典的key 返回的是相应key的value
print(get_value("a"))
print(max(slaries,key=get_value)) # 内部是可迭代对象,key的值是一个函数
print(max(slaries)) #这样是返回的的key的字符串的比较,先比较第一个ascii,第一个相同,比较后面的
匿名函数lambda
f = lambda k :slaries[k] # 这一行就是一个返回值 lambda k 就相当于是def+函数名 slaries[k]就是return
print(f("a"))
取出value最大的key
slaries ={
"a":10000000,
"b":2000000,
"c":300000,
"d":40000
}
print((max(slaries,key=lambda k:slaries[k])))
min
取出最小的value
print((min(slaries,key=lambda k:slaries[k])))
zip
形象的解释成拉链,是一个迭代器
l1 = [1,2,3]
s = 'hello'
for i in zip(l1,s):
print(i)
结果:
(1, 'h')
(2, 'e')
(3, 'l')
返回的是数组
取出所有的key并对用所有的value
z = zip(slaries.keys(),slaries.values())
print(max(z)) # 内部是迭代器
sorted 升序
l = [1.2,5,6,8,2,5,]
print(sorted(l,)) # 把列表升序排列
print(sorted(l,reverse=True)) # reverse = True 代表降序排列
slaries ={
"a":10000000,
"b":2000000,
"c":300000,
"d":40000
}
# print(sorted(slaries)) #默认是按照字典的key排序
print(sorted(slaries,key=lambda k:slaries[k])) # 工资按照升序排列
print(sorted(slaries,reverse=True,key=lambda k:slaries[k])) # 工资按照降序排列
print(sorted(slaries,key=lambda k:slaries[k],reverse=True)) # 工资按照降序排列
map 映射
map(func, *iterables) --> map object
map第一个是函数,第二个是可迭代对象
l = [1,2,3,46,7]
m=map(lambda item:item**2,l) # 函数 可迭代对象
# for i in m:
# print(i)
print(list(m)) # 因为m是迭代器,所以转换成列表
reduce合并
from functools import reduce Python3中需要导入
from functools import reduce
l=list(range(100))
# print(l)
m = reduce(lambda x,y:x+y,l)
print(m)
结果:
4950
m=reduce(lambda x,y:x+y,l,100) # 设置初始值
思路理解:
先是初始值给x,从列表中获取第一个值0--y,x+y=100,
100给x 二 1--y,x+y = 101,
默认的时候第一个值是0
filter过滤
name_l=[
{'name':'aaa','age':18},
{'name':'bbb','age':20},
{'name':'ccc','age':5000},
{'name':'dddd','age':100000},
]
f = filter(lambda d:d['age'] > 100,name_l) # 函数lambda中的是进行的布尔运算
print(list(f))
结果:
[{'name': 'ccc', 'age': 5000}, {'name': 'dddd', 'age': 100000}]
oct
把十进制转换成8进制
slice切片
# s=slice(2,5,2) # 开始,结尾 步长
# print(l[s])
# l=[1,2,3,4,5]
# print(l[2:4]) # 顾头不顾尾
vars
prints(vars()) # 此时等同于local()
打印局部空间变量
{'name': 'main', 'doc': None, 'package': None, 'loader': <_frozen_importlib_external.SourceFileLoader object at 0x00000000021D95C0>, 'spec': None, 'annotations': {}, 'builtins': <module 'builtins' (built-in)>, 'file': 'D:/Python_fullstack_s4/day25/test.py', 'cached': None, 'slaries': {'a': 10000000, 'b': 2000000, 'c': 300000, 'd': 40000}}
通过字符串导入
__import__("time")
这种可以用于将读取的字符串作为模块导入