PYTHON学习0030:函数---内置方法----2019-6-23

PYTHON学习0030:函数---内置方法----2019-6-23
.
1、abs():取绝对值。举例:
print "abs(-45) : ", abs(-45)
输出结果为:
abs(-45) : 45
2、dict():吧一个数据转成字典。
3、min()从一个列表里取最小值。max()从列表里取出最大值。
4、all()用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
元素除了是 0、空、None、False 外都算 True。
5、bool():只能接收一个参数,用于将给定参数转换为布尔类型,如果参数是 0、空、None、False,返回 False。bool 是 int 的子类。
6、any():函数用于判断给定的可迭代参数 iterable 是否全部为 False,全部是则返回 False,如果有一个为 True,则返回 True。
元素除了是 0、空、FALSE 外都算 TRUE。
7、dir():函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法。
如果参数包含方法dir(),该方法将被调用。如果参数不包含dir(),该方法将最大限度地收集参数信息。
8、hex():函数用于将10进制整数转换成16进制,以字符串形式表示。
9、slice():函数实现切片对象,主要用在切片操作函数里的参数传递。
slice 语法:
class slice(stop)
class slice(start, stop[, step])
参数说明:start -- 起始位置;stop -- 结束位置;step -- 间距
返回值:
返回一个切片对象。

实例
以下实例展示了 slice 的使用方法:

myslice = slice(5) # 设置截取5个元素的切片
myslice
slice(None, 5, None)
arr = range(10)
arr
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
arr[myslice] # 截取 5 个元素
[0, 1, 2, 3, 4]

10、divmod()接收2个数字,把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
11、sorted():函数对所有可迭代的对象进行排序操作。

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
语法
sorted 语法:

sorted(iterable, key=None, reverse=False)
参数说明:

iterable -- 可迭代对象。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值:
返回重新排序的列表。

实例
以下实例展示了 sorted 的最简单的使用方法:

sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5] # 默认为升序
你也可以使用 list 的 list.sort() 方法。这个方法会修改原始的 list(返回值为None)。通常这个方法不如sorted()方便-如果你不需要原始的 list,list.sort()方法效率会稍微高一些。

a=[5,2,3,1,4]
a.sort()
a
[1,2,3,4,5]
另一个区别在于list.sort() 方法只为 list 定义。而 sorted() 函数可以接收任何的 iterable。

sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
[1, 2, 3, 4, 5]
利用key进行倒序排序

example_list = [5, 0, 6, 1, 2, 7, 3, 4]
result_list = sorted(example_list, key=lambda x: x*-1)
print(result_list)
[7, 6, 5, 4, 3, 2, 1, 0]

要进行反向排序,也通过传入第三个参数 reverse=True:

example_list = [5, 0, 6, 1, 2, 7, 3, 4]
sorted(example_list, reverse=True)
[7, 6, 5, 4, 3, 2, 1, 0]

12、eval():用来执行一个字符串表达式,并返回表达式的值。只能处理单行代码。
13、exec():用来执行一个字符串表达式,但不返回表达式的值。能处理多行代码
比如以下代码:
code='''
def foo():
print("run foo")
return 1234

foo()
'''

exec(code)
res=exec(code)
print(res)
输出结果为:
run foo
run foo
None
也就是exec函数可以执行括号里的表达式,但是没有返回值,或者返回None。
又如:
res=eval("1+3+3")
print(res)

res=exec("1+3+3")
print(res)

输出结果为:
7
None
14、ord():它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。

ord('a')
97
ord('b')
98
ord('c')
99
15、chr():返回当前接收整数的对应的 ASCII 字符。
chr(97)
'a'

16、sum():求和函数。
17、bytearray():一般来讲字符串里的元素是不能被修改的,但本函数可以通过先吧字符串转变为utf-8字符集,再修改,以达到修改字符串的目的。这个是在内存地址层面的修改,也就是内存地址没有变,不是重新赋值。
17、map(): 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
实例:
以下实例展示了 map() 的使用方法:

def square(x) : # 计算平方数
... return x 2
...
map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
map(lambda x: x
2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]

提供了两个列表,对相同位置的列表数据进行相加

map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]
18、filter():函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
以下展示了使用 filter 函数的实例:

过滤出列表中的所有奇数:

def is_odd(n):
return n % 2 == 1

tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)
输出结果 :

[1, 3, 5, 7, 9]

用法和map()函数差不多。
19、reduce():reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
比方说对一个序列求和,就可以用reduce实现:

from functools import reduce
def add(x, y):
... return x + y
...
reduce(add, [1, 3, 5, 7, 9])
25
当然求和运算可以直接用Python内建函数sum(),没必要动用reduce。

但是如果要把序列[1, 3, 5, 7, 9]里的元素相乘,reduce就可以派上用场:
from functools import reduce
def fn(x, y):
return x * y

res=reduce(fn, [1, 3, 5, 7, 9])
print(res)
输出为945。

20、pow():求数字的幂数。
pow(8,3)=512。
21、callable():判断一个对象是否可调用。函数可以调用字符串,列表,元祖,字典,集合等不可调用。
22、vars():打印当前所有变量名及其对应值。
23、locals():以字典类型返回当前位置的全部局部变量。一般在函数内运行。
24、globals():返回全部全局变量。
25、zip():函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
以下实例展示了 zip 的使用方法:

a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
zip(a,c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
zip(zipped) # 与 zip 相反,zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]
26、round():吧一个数字返回保留指定小数的数字。
round(1.2345345345,5)=1.23453
27、hash():吧一个字符串按照哈希规则变成数字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章