python 函数

只谈情不闲聊 提交于 2019-11-26 17:17:56

内置函数

python 内置函数有很多,这里挑一部分介绍一下

abs() 获取绝对值,参数为数字

all() 参数为一个可迭代对象,判断这个可迭代对象的所有元素都是True。 除了0,None,空,False 其他都是True

any() 参数为一个可迭代对象,判断这个可迭代对象的所有元素都是False。

bin() 返回一个整数 int 或者长整数 long int 的二进制表示。

bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。

python range() 函数可创建一个整数列表

bytearray() 方法返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。

callable() 函数用于检查一个对象是否是可调用的。如果返回 True,object 仍然可能调用失败;但如果返回 False,调用对象 object 绝对不会成功。

cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符(既对应的 ASCII 字符)。

unichr() 函数 和 chr()函数功能基本一样, 只不过是返回 unicode 的字符。python3已经取消

ord() 返回 ASCII 字符对应的数值。

vars() 函数返回对象object的属性和属性值的字典对象。

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)]

 

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

a = [1,2,3]
s = enumerate(a)
for i in s:
    print(i)
(0, 1)
(1, 2)
(2, 3)

str() 函数将对象转化字符串。

repr() 函数将对象转化为供解释器读取的形式。

str 和 repr的区别:
a = 'hello'
print(str(a))
print(repr(a))
hello  #打印的是'hello'和换行,方便人理解

'hello\n' #就是字符串本身,方便解释器理解

eval() 函数用来执行一个字符串表达式,并返回表达式的值。

file() 函数用于创建一个 file 对象,它有一个别名叫 open()。

isinstance() 函数来判断一个对象是否是一个已知的类型。

a = 'aaa'
print(isinstance(a,str))

issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。

class A:
    pass
print(issubclass(A,object))
True

pow() 方法返回 xy(x的y次方) 的值。

 

delattr 函数用于删除属性。

dict() 函数用于创建一个字典。

>>>dict()                        # 创建空字典
{}
>>> dict(a='a', b='b', t='t')     # 传入关键字
{'a': 'a', 'b': 'b', 't': 't'}
>>> dict(zip(['one', 'two', 'three'], [1, 2, 3]))   # 映射函数方式来构造字典
{'three': 3, 'two': 2, 'one': 1} 
>>> dict([('one', 1), ('two', 2), ('three', 3)])    # 可迭代对象方式来构造字典
{'three': 3, 'two': 2, 'one': 1}
>>>

dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。

execfile() 函数可以用来执行一个文件。

python3 删去了 execfile(),代替方法如下:
with open('test1.py','r') as f:
    exec(f.read())

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

a = [1,2,3,4,5]
b = filter(lambda x:x<=2,a)
print(list(b))
[1, 2]

float() 函数用于将整数和字符串转换成浮点数。

format() 格式化字符串

a = 1
b = 2
print("a = {},b={}".format(a,b))

frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

hasattr() 函数用于判断对象是否包含对应的属性。

hash() 用于获取取一个对象(字符串或者数值等)的哈希值。

help() 函数用于查看函数或模块用途的详细说明

hex() 函数用于将10进制整数转换成16进制,以字符串形式表示。

oct() 函数将一个整数转换成8进制字符串。

id() 函数用于获取对象的内存地址。

input() 函数接受一个标准输入数据,返回为 string 类型。

int() 函数用于将一个字符串或数字转换为整型

a = '11'
print(int(a,base=2))
#默认base=10 表示进行的是十进制转换
#base=2 表示要把2进制的字符串转换成int类型

iter() 函数用来生成迭代器。把一个可迭代对象变成迭代器

len() 方法返回对象(字符、列表、元组等)长度或项目个数。

list() 方法用于将对象转换为列表。

locals() 函数会以字典类型返回当前位置的全部局部变量。

long() 函数将数字或字符串转换为一个长整型。

__import__() 函数用于动态加载类和函数 

exec 执行储存在字符串或文件中的Python语句

map() 会根据提供的函数对指定序列做映射。

a = [1,2,3]
b = map(lambda x:x*x,a)
print(list(b))
[1, 4, 9]

max() 方法返回给定参数的最大值,参数可以为序列(序列为空会报异常)。

min()方法返回给定参数的最小值,参数可以为序列(序列为空会报异常)。

memoryview()提供了统一且安全的直接读或者写内存的途径。python里一切都是对象,而且简单的字符串操作都会引起内存拷贝和新对象的产生。memoryview正为减少内存拷贝,优化效率而来。str和bytearray实现了memoryview协议,前者实现了只读,后者实现了读写。

b = bytearray(b'abc')
m = memoryview(b)
b[0] = 'z'
print(m[0])  => z
从stackoverflow看来一个典型的效率用例:

import time
for n in (100000, 200000, 300000, 400000):
    data = 'x'*n
    start = time.time()
    b = data
    while b:
        b = b[1:]
    print 'bytes', n, time.time()-start

for n in (100000, 200000, 300000, 400000):
    data = 'x'*n
    start = time.time()
    b = memoryview(data)
    while b:
        b = b[1:]
    print 'memoryview', n, time.time()-start
运行结果如下: 

bytes 100000 0.240149021149
bytes 200000 1.04921603203
bytes 300000 2.66688489914
bytes 400000 4.83206987381
memoryview 100000 0.011647939682
memoryview 200000 0.0258820056915
memoryview 300000 0.0385529994965
memoryview 400000 0.0550448894501memoryview对象如果不释放,那么即使绑定的对象释放了,内存也不会释放,必须del

reduce() 函数会对参数序列中元素进行累积。

from functools import reduce
def add(x, y) :            # 两数相加
   return x + y

reduce(add, [1,2,3,4,5],100)   # 计算列表和:100+1+2+3+4+5

reduce(lambda x, y: x+y, [1,2,3,4,5])  # 使用 lambda 匿名函数

reverse() 函数用于反向列表中元素。

round() 方法返回浮点数x的四舍五入值。

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。

slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。

a = [0,1,2,3,4,5,6,7,8]
print(list(a[slice(3)])) #[:3]
print(list(a[slice(1,2)])) #[1:2]
print(list(a[slice(0,8,2)]))#[0:8:2]

sorted() 函数对所有可迭代的对象进行排序操作。

>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
>>> sorted(students, key=lambda s: s[2])            # 按年龄排序
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

sum() 方法对系列进行求和计算。

super() 函数是用于调用父类(超类)的一个方法。在继承的时候可传参数指定父类名

tuple() 函数将列表转换为元组。

type() 返回一个对象的类型。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!