Python提供用于操作对象的多个内置函数,这些函数可以获取对象的长度、对序列对象排序、迭代可迭代对象、检测对象的类型。
下表列出了用于操作对象常用的内置函数。

获取对象的长度
函数声明:
len(s)
返回对象的长度(元素个数)。实参可以是序列(如 string、bytes、tuple、list 或 range 等)或集合(如 dictionary、set 或 frozen set 等)。
案例代码:
>>> s = "abcdef"
>>> print(len(s))
6
>>> a = ["java","python","c++"]
>>> print(len(a))
3
>>>
对象元素排序
函数声明:
sorted(iterable, *, key=None, reverse=False)
对传入的iterable进行排序,以列表方式返回排序结果。key 指定带有单个参数的函数,用于从 iterable 的每个元素中提取用于比较的键 (例如 key=str.lower)。 默认值为 None (直接比较元素)。
reverse 为一个布尔值。 如果设为 True,则每个列表元素将按反向顺序比较进行排序。
案例代码:
>>> a = (192,36,89,6,101,19)
# 对元组a的元素按升序排序
>>> b = sorted(a)
>>> print(b)
[6, 19, 36, 89, 101, 192]
# 对元组a的元素按降序排序
>>> c = sorted(a,reverse=True)
>>> print(c)
[192, 101, 89, 36, 19, 6]
逆序对象元素
函数声明:
reversed(seq)
对传入的seq对象元素逆序排列,并返回一个反转的迭代器(iterator)。 seq 必须是一个具有 __reversed__() 方法的对象或者是支持该序列协议。
案例代码:
>>> s = "abcdef"
>>> r = reversed(s)
>>> print(list(r))
['f', 'e', 'd', 'c', 'b', 'a']
>>>
查看对象类型
函数声明:
class type(object)
返回object对象的类型。
案例代码:
>>> s = "abcdef"
>>> type(s)
<class 'str'>
>>> a = ["java","Python"]
>>> type(a)
<class 'list'>
>>>
检查对象类型
函数声明:
isinstance(object, classinfo)
如果参数 object 是参数 classinfo 的实例或者是其 (直接、间接或 虚拟) 子类则返回 True。 如果 object 不是给定类型的对象,函数将总是返回 False。
案例代码:
>>> s = "abcdef"
# 检测对象s是否是str类型
>>> isinstance(s,"str")
True
>>> a = ["java","python"]
# 检测对象s是否是list类型
>>> isinstance(s,list)
False
# 检测对象a是否是list类型
>>> isinstance(a,list)
True
>>>
获取对象的迭代器
函数声明:
iter(object[, sentinel])
返回object对象的迭代器,若没有传入可选参数sentinel的实参,object 必须是支持迭代协议(有 __iter__() 方法)的容器对象,否则会触发 TypeError异常。
如果有第二个实参 sentinel,那么 object 必须是可调用的对象(例如函数)。此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。
案例代码:
>>> s = "abcdef"
# 返回对象s的迭代器
>>> d = iter(s)
>>> type(d)
<class 'str_iterator'>
# 从迭代器d获取下一个元素
>>> next(d)
'a'
>>> next(d)
'b'
>>>
从迭代器获取下一个元素
函数声明:
next(iterator[, default])
通过调用 iterator 的 __next__() 方法获取下一个元素。如果迭代器耗尽,则返回给定的 default,如果没有默认值则触发 StopIteration。
案例代码参见注释(6)
列出对象的属性列表
函数声明:
dir([object])
如果没有实参,则返回当前本地作用域中的名称列表。如果有实参,它会尝试返回该对象的有效属性列表。
案例代码:
>>> s = "abcdef"
>>> dir(s)
['__add__', '__class__', '__contains__',
'__delattr__', '__dir__', '__doc__', '__eq__',
'__format__', '__ge__', '__getattribute__',
'__getitem__', '__getnewargs__', '__gt__',
'__hash__', '__init__', '__init_subclass__',
'__iter__', '__le__', '__len__', '__lt__',
'__mod__', '__mul__', '__ne__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__',
'__rmod__', '__rmul__', '__setattr__',
'__sizeof__', '__str__', '__subclasshook__',
'capitalize', 'casefold', 'center', 'count',
'encode', 'endswith', 'expandtabs', 'find',
'format', 'format_map', 'index', 'isalnum',
'isalpha', 'isascii', 'isdecimal', 'isdigit',
'isidentifier', 'islower', 'isnumeric', 'isprintable',
'isspace', 'istitle', 'isupper', 'join',
'ljust', 'lower', 'lstrip', 'maketrans',
'partition', 'replace', 'rfind', 'rindex',
'rjust', 'rpartition', 'rsplit', 'rstrip',
'split', 'splitlines', 'startswith',
'strip', 'swapcase', 'title',
'translate', 'upper', 'zfill']
>>>
从代码执行结果可以看出,dir(s)列出了字符串对象所有的属性及方法。
检查对象的元素是否都为真值
函数声明:
all(iterable)
如果 iterable 的所有元素均为真值(或可迭代对象为空)则返回 True。元素除了是 0、空、None、False 外都算 True。
案例代码:
>>> s = (19,0,3)
>>> all(s)
False
>>> s = (19,1,3)
>>> all(s)
True
>>>
获取对象的哈希值
函数声明:
hash(object)
返回该对象的哈希值(如果它有的话)。哈希值是整数。它们在字典查找元素时用来快速比较字典的键。相同大小的数字变量有相同的哈希值。
案例代码:
>>> s = "abcdef"
>>> hash(s)
1810951208529201389
>>> num1 = 10
>>> hash(num1)
10
>>> num2 = 10.0
>>> hash(num2)
10
>>>
获取对象的唯一标识值
函数声明:
id(object)
返回对象的唯一标识值,该值是一个整数。
案例代码:
>>> s = "abcdef"
>>> id(s)
2712228324592
>>> num = 10
>>> id(num)
140733556398016
>>>
获取对象的最大元素
函数声明:
max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])
返回可迭代对象中最大的元素,或者返回两个及以上实参中最大的。如果只提供了一个位置参数,它必须是非空 iterable,返回可迭代对象中最大的元素;如果提供了两个及以上的位置参数,则返回最大的位置参数。
key 实参指定排序函数用的参数,如传给 list.sort() 的。default 实参是当可迭代对象为空时返回的值。如果可迭代对象为空,并且没有给 default ,则会触发 ValueError。
案例代码:
>>> a = [90,20,31,101,98,16]
>>> max(a)
101
>>> max(35,89)
89
>>>
获取对象的最小元素
函数声明:
min(iterable, *[, key, default])
min(arg1, arg2, *args[, key])
返回可迭代对象中最小的元素,或者返回两个及以上实参中最小的。如果只提供了一个位置参数,它必须是非空 iterable,返回可迭代对象中最小的元素;如果提供了两个及以上的位置参数,则返回最小的位置参数。
key 实参指定排序函数用的参数,如传给 list.sort() 的。default 实参是当可迭代对象为空时返回的值。如果可迭代对象为空,并且没有给 default ,则会触发 ValueError。
案例代码:
>>> a = [90,20,31,101,98,16]
>>> min(a)
16
>>> min(35,89)
35
>>>