python的内置函数2--2018-08-10
1.isinstance()函数
描述:isinstance()函数判断一个对象是否是一个已知的类型,类似type()
isinstance() 与type()区别:
type()不会认为子类是一种父类类型,不考虑继承关系。
isinstance()会认为子类是一种父类类型,考虑继承关系
如果要判断两个类型是否相同推荐使用isinstance()
语法:
isinstance(object,classinfo)
参数:
- object -- 实例对象。
- classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
返回值:
如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。。
实例:
>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True
True
type() 与isinstance()区别
class A:
pass
class B(A):
pass
isinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False
2.issubclass()函数
描述:issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。
语法:
issubclass(class, classinfo)
参数:
- class -- 类。
- classinfo -- 类。
返回值:
如果 class 是 classinfo 的子类返回 True,否则返回 False。
实例:
class A:
pass
class B(A):
pass
print(issubclass(B,A)) # 返回 True
3.iter()函数
描述:iter() 函数用来生成迭代器。
语法:iter(object[, sentinel])
参数:
- object -- 支持迭代的集合对象。
- sentinel -- 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的next()方法时,都会调用 object。
返回值:迭代器对象
实例:
>>>lst = [1, 2, 3]
>>> for i in iter(lst):
... print(i)
...
1
2
3
4.map()函数
描述:
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
语法:
map(function, iterable, ...)
参数:
- function -- 函数,有两个参数
- iterable -- 一个或多个序列
返回值:
- Python 2.x 返回列表。
- Python 3.x 返回迭代器。
实例:
>>>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]
5.property()函数
描述:
property()函数的作用在新式类中返回属性值
语法:
class property([fget[, fset[, fdel[, doc]]]])
参数:
fegt--获取属性值的函数
fset--设置属性值的函数
fdel--删除属性值的函数
doc--属性描述信息
返回值:
返回新式类属性
实例:http://www.runoob.com/python/python-func-property.html
6.repr()函数
描述:repr()函数将对象转化为供解释器读取的形式
语法:
repr(object)
返回值:返回一个对象的string格式
实例:
>>>s = 'RUNOOB'
>>> repr(s)
"'RUNOOB'"
>>> dict = {'runoob': 'runoob.com', 'google': 'google.com'};
>>> repr(dict)
"{'google': 'google.com', 'runoob': 'runoob.com'}"
>>>
7.reversed函数
描述:
reversed函数返回一个反转迭代器。
语法
reversed(seq)
参数:
seq -- 要转换的序列,可以是 tuple, string, list 或 range。
返回值:
返回一个反转的迭代器
实例:
# 字符串
seqString = 'Runoob'
print(list(reversed(seqString)))
# 元组
seqTuple = ('R', 'u', 'n', 'o', 'o', 'b')
print(list(reversed(seqTuple)))
# range
seqRange = range(5, 9)
print(list(reversed(seqRange)))
# 列表
seqList = [1, 2, 4, 3, 5]
print(list(reversed(seqList)))
['b', 'o', 'o', 'n', 'u', 'R']
['b', 'o', 'o', 'n', 'u', 'R']
[8, 7, 6, 5]
[5, 3, 4, 2, 1]
8.sorted()函数
描述:
sorted()函数对所有课迭代的对象进行排序操作
sort与sorted区别:
sort是应用在list上的方法,sorted可以对所有可迭代对象进行排序操作,list的sort方法返回的是对已经存在的列表进行操作,而内建函数sorted方法返回的是一个新的list,而不是在原来的基础上进行操作
语法:sorted(iterable, key=None, reverse=False)
参数说明:
- iterable -- 可迭代对象。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值 :返回重新排序的列表。
实例:
>>>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]
>>>