Python中常用的内置函数

Python中常用的内置函数

Python内置函数(built-in)是随着Python解释器的运行而被创建的。在Python程序中,你可以随时调用这些函数,而且不需要定义。在开发过程中,合理地使用这些内置函数能极大地提升你的开发效率。

这篇文章是对我在开发过程中经常遇到的内置函数的用法总结。

enumerate()函数

描述

enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合成一个索引序列,同时列出数据和数据下标,一般用于for循环中。

语法

1
enumerate(sequence, [start=0])

参数

  • sequence: 一个序列、迭代器或其他可迭代对象。
  • start: 下标开始位置。

返回值

返回enumerate(枚举)对象。

实例

1
2
3
4
5
>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1)) # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

普通的for循环

1
2
3
4
5
6
7
8
9
>>>i = 0
>>> seq = ['one', 'two', 'three']
>>> for element in seq:
... print i, seq[i]
... i +=1
...
0 one
1 two
2 three

for循环使用enumerate()

1
2
3
4
5
6
7
>>>seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
... print i, element
...
0 one
1 two
2 three

isinstance()函数

描述

isinstance()函数用来判断一个对象是否是一个已知类型,类似type()

isinstance()type()的区别:

  • type()不会认为子类是一种父类类型,不考虑继承关系;
  • isinstance()会认为子类是一种父类类型,考虑继承关系;

如果要判断两个类型是否相同推荐使用isinstance()

语法

1
isinstance(object, classinfo)

参数

  • object: 实例对象;
  • classinfo: 可以直接或间接是类名、基本类型或者由它们组成的元组;

说明:

对于基本类型来说classinfo可以是:

1
int, float, bool, complex, str(字符串), list, dict(字典), set, tuple

要注意的是,classinfo的字符串是str而不是string,字典也是简写dict

实例:

1
2
3
4
arg=123
isinstance(arg, int) #输出True
isinstance(arg, str) #输出False
isinstance(arg, string) #报错

返回值

如果对象的类型与classinfo的类型相同则返回True,否则返回False。

实例

1
2
3
4
5
6
7
>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True
True

type与instance的区别

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