Python内置函数

python的内置函数:

abs

1
2
print(abs(-1)) # 取绝对值
print(abs(0)) # 取绝对值

all

all内部只有一个元素,内部是一个可迭代的对象

元组 列表形式的

1
2
3
4
print(all([])) # 里面是可迭代对象 空返回true
print(all((1,''))) # 里面是可迭代对象 依次取内部的x进行bool运算,只有所有的全部为True 这里字符串为空,返回false
print(all((1,[]))) # 里面是可迭代对象 依次取内部的 空是false
print(all((1,2,' ',None))) #字符串的空格是True None是false

生成器方式:

1
2
(for i in range(100)) # 这是一个生成器对象,
print(all(i for i in range(1,3))) # 内部是生成器,容易出错的是加上括号

any

any是有任何一个的bool值是True,返回值是True,空返回的是false

1
2
print(any([]))
print(any([None,0,'',{},1]))

bin

1
print(bin(10)) # 十进制转换成二进制

bool

空的情况:0、空字符串、空字典、空列表、None、

1
2
3
4
print(bool(0))
print(bool(''))
print(bool(None))
print(bool([]))

返回值都是false

bytes

1
print(bytes('hello',encoding='utf-8'))

b’hello’

callable

查看能否被调用

1
2
3
4
# 可以被调用
def test():
pass
print(callable(test))

能被调用,返回True

chr

1
print(chr(65))

ord

1
print(ord('A'))

complex

1
2
3
x = complex(1-2j)
print(x.real) # 复数的实部
print(x.imag) # 复数的虚部
1
2
3
4
不可变字典 不能增删改查
x = frozenset({1,2,3,4})
print(x)

dir

查看sum可以调用的方法,返回值是列表的形式

1
2
3
print(dir(sum))
print(divmod(10,3)) # 整除和取余数 用于分页,第一个是整除,第二个是取余数

enumerate

1
2
3
4
5
# d = enumerate
# d.__iter__()
# d.__next__() # 是迭代器
# for i in enumerate(['a','b','c']): #
# print(i)

hash

s1修改后,hash的值会改变,hash有不同的方法,MD5,SHA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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

1
2
3
4
5
6
7
8
9
10
11
12
13
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

1
2
f = lambda k :slaries[k] # 这一行就是一个返回值 lambda k 就相当于是def+函数名 slaries[k]就是return
print(f("a"))

取出value最大的key

1
2
3
4
5
6
7
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

形象的解释成拉链,是一个迭代器

1
2
3
4
5
l1 = [1,2,3]
s = 'hello'
for i in zip(l1,s):
print(i)

结果:
(1, ‘h’)
(2, ‘e’)
(3, ‘l’)
返回的是数组

取出所有的key并对用所有的value

1
2
z = zip(slaries.keys(),slaries.values())
print(max(z)) # 内部是迭代器

sorted 升序

1
2
3
l = [1.2,5,6,8,2,5,]
print(sorted(l,)) # 把列表升序排列
print(sorted(l,reverse=True)) # reverse = True 代表降序排列
1
2
3
4
5
6
7
8
9
10
11
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第一个是函数,第二个是可迭代对象

1
2
3
4
5
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中需要导入

1
2
3
4
5
6
from functools import reduce
l=list(range(100))
# print(l)
m = reduce(lambda x,y:x+y,l)
print(m)

结果:
4950

1
m=reduce(lambda x,y:x+y,l,100) # 设置初始值

思路理解:
先是初始值给x,从列表中获取第一个值0–y,x+y=100,
100给x 二 1–y,x+y = 101,
默认的时候第一个值是0

filter过滤

1
2
3
4
5
6
7
8
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切片

1
2
# s=slice(2,5,2) # 开始,结尾 步长
# print(l[s])
1
2
# l=[1,2,3,4,5]
# print(l[2:4]) # 顾头不顾尾

vars

1
prints(vars()) # 此时等同于local()

打印局部空间变量
{‘name‘: ‘main‘, ‘doc‘: None, ‘package‘: None, ‘loader‘: <_frozen_importlib_external.sourcefileloader object="" at="" 0x00000000021d95c0="">, ‘spec‘: None, ‘annotations‘: {}, ‘builtins‘: , ‘file‘: ‘D:/Python_fullstack_s4/day25/test.py’, ‘cached‘: None, ‘slaries’: {‘a’: 10000000, ‘b’: 2000000, ‘c’: 300000, ‘d’: 40000}}

通过字符串导入

1
__import__("time")

这种可以用于将读取的字符串作为模块导入

© 2018 Peter's Blog Center All Rights Reserved.
Theme by hiero