需要区分对比的函数以及函数小结

Posted 明王不动心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要区分对比的函数以及函数小结相关的知识,希望对你有一定的参考价值。

在内置函数中个,有几组函数长的特别像,功能也有些相似,我们需要加以区分。

1.reverse()和reversed()

reserve():将列表中的元素反向,直接作用在原对象上,没有返回值。

reserved():倒序从一个可迭代对象中取值,返回一个迭代器。

reverse()处理的只能是列表,reserved()处理的是所有的可迭代对象。

>>> list1 = [2,4,1,6]
>>> st1 = "2416"
>>> tu1 = (2,4,1,6)

>>> list1.reverse()
>>> list1
[6, 1, 4, 2]     #直接作用在原对象上
>>> st1.reverse()    #是列表特有的方法
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: \'str\' object has no attribute \'reverse\'

>>> reversed(list1)  #作用于可迭代对象
<list_reverseiterator object at 0x7f992b6facc0>
>>> reversed(st1)
<reversed object at 0x7f992b6faa90>  
>>> st1
\'2416\'
>>> gg = reversed(st1)
>>> "__next__" in dir(gg)   #返回的是一个迭代器
True
>>> list(reversed(st1))
[\'6\', \'1\', \'4\', \'2\']

 

2 sort()和sorted()

sort():列表所特有的方法,将列表的元素排序,直接作用在原表之上,没有返回值。

sorted():作用于可迭代对象,返回一个排序后的列表。

>>> list1
[6, 1, 4, 2]
>>> list1.sort()  #没有返回值
>>> list1
[1, 2, 4, 6]

>>> list2 = [4,2,9,5,1]
>>> sorted(list2)
[1, 2, 4, 5, 9]      #返回一个列表

>>> st1
\'2416\'               #sorted()可以作用于任何可迭代对象
>>> tu1
(2, 4, 1, 6)
>>> sorted(tu1)
[1, 2, 4, 6]
>>> sorted(st1)
[\'1\', \'2\', \'4\', \'6\']

 

3.内置函数中,有部分函数可以以函数名作为参数

常见的有:max()、min()、filter()、map()

经常在进行值的比较或排序的时候,想在某种机制下比较,但又不会改变原来的值,这些函数隐藏的功能就会体现出来了。

>>> list1 = [4,2,-8,5,-3]
>>> max(list1)
5
>>> max(list1,key=abs)
-8
>>> list(sorted(list1,key=abs))
[2, -3, 4, 5, -8]
>>> min(list1,key=abs)
2
>>> list(filter(lambda x:x%2 == 0,list1))  #过滤,返回新的列表
[4, 2, -8]
>>> list(map(abs,list1))   #将第二个参数中的元素做为第一个函数的参数,返回一个新的列表
[4, 2, 8, 5, 3]

 

 

 

 

内建函数

1.数字类型的方法:http://www.cnblogs.com/yangmingxianshen/p/7705563.html

代表:int()、float()、long()、complex()、abs()、pow()、hex()、ord()、chr()、oct()

 

2.列表的内建方法:http://www.cnblogs.com/yangmingxianshen/p/7702842.html

代表:append()、extand()、sort()、reverse()、pop()、index()、insert()、remove()

 

3.字典的方法:http://www.cnblogs.com/yangmingxianshen/p/7704674.html

代表:dict()、get()、hash()、clear()、pop()、popitem()、copy()、keys()、values()、update()、setdefault()

 

4.序列通用:http://www.cnblogs.com/yangmingxianshen/p/7702886.html

代表:len()、count()、sorted()、reserved()、zip()、enumerate()、max()、min()、all()、any()

 

5.集合:http://www.cnblogs.com/yangmingxianshen/p/7718646.html

代表:add()、update()、remove()、clear()

 

6.字符串:http://www.cnblogs.com/yangmingxianshen/p/7704149.html

代表:strip()、split()、format()、startswith()、endswith()、lower()、upper()、join()、find()、index()

 

7.作用域:locals()和globals()

 

8.字符串类型代码的执行:http://www.cnblogs.com/yangmingxianshen/p/7810496.html

代表:exac()、eval()、complie()

 

9.其它:

代表:dir()、id()、input()、range()、callable()、open()、help()

 

以上是关于需要区分对比的函数以及函数小结的主要内容,如果未能解决你的问题,请参考以下文章

函数练习小结

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

python 11 函数名 迭代器

js中回调函数,promise 以及 async/await 的对比用法 对比!!!

区分函数以及方法

this关键的用法小结