接收一个or多个迭代器,将对象中对应的元素打包成一个个元组,如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同
1 | >>> list(zip([1,2,3], ['a', 'b', 'c'])) |
说明:借助*
可以将zip打包的元组解压为之前的数据
接收一个or多个迭代器,将对象中对应的元素打包成一个个元组,如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同
1 | >>> list(zip([1,2,3], ['a', 'b', 'c'])) |
说明:借助*
可以将zip打包的元组解压为之前的数据
返回对象object的属性和属性值的字典对象
1 | >>> class A: |
返回参数类型
语法
1 | type(object) |
上面两种用法表示的含义不同
实例
1 | >>> type('str') |
将可迭代系列(如列表)转换为元组
1 | >>> tuple([1,2,3]) |
访问父类中的方法
1 | >>> class A: |
注意,在多继承时,会从左到右找匹配的方法,广度优先
将对象转化为字符串
1 | >>> str([1,2,3]) |
对所有可迭代的对象进行排序
1 | sorted(iterable, key=None, reverse=False) |
返回排好序的列表
1 | >>> a = [1,3, 2, 9, 4] |
注意:列表的sort()方法无返回直接作用于列表; sorted()有返回,原对象不变
1 | >>> a=[('b',2),('a',1),('c',3),('d',4)] |
一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
一灰灰blog
切片,主要用于切片操作函数里的参数
语法
1 | slice(stop) |
举例
1 | >>> list(range(0, 10))[slice(4)] |
与 getattr对应,设置属性值(属性可以不存在)
1 | class A: |
创建一个无序不重复元素集
1 | >>> set([1,2,3,2,1]) |
注意传参为可迭代对象
返回浮点数 x 的四舍五入值,准确的说保留值将保留到离上一位更近的一端(四舍六入)
会有精度丢失,要求高的,不要用
1 | >>> round(2.674, 2) |
注意,如果保留位的后一个为5时,需要再往后看一位,如果有,则进;没有则舍
返回对象的string格式
1 | >>> repr([1,2,3]) |
返回可迭代的对象
语法
1 | range(start, stop[,step]) |
举例
1 | >>> list(range(0, 10, 3)) |
可以说是最常见的一个函数了,除了常见的输出在终端之外,还支持输出到文件
语法定义
1 | print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) |
sys.stdout
标准输出与前面介绍的chr
配对,返回字unicode字符对应的ascii/unicode码
1 | >>> ord('a') |
打开文件,常配合with语句使用
语法
1 | open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) |
参数说明
file
: 必需,文件路径(相对或者绝对路径)。mode
: 可选,文件打开模式buffering
: 设置缓冲encoding
: 一般使用utf8errors
: 报错级别newline
: 区分换行符closefd
: 传入的file参数类型返回迭代器的下一个元素
语法
1 | next(iterator[,default] |
iterator
: 可迭代对象default
: 没有下一个元素时返回的默认值,不设置时,没有元素抛异常实例
1 | >>> a = iter([1,2,3]) |
从上面的case,也可以大致看出它常配合while循环一起使用
返回给定参数中的最小值
1 | >>> min(1,2,3) |
内存查看对象,是指对支持缓冲区协议的数据进行包装,返回元组列表
1 | >>> memoryview(b'abc') |
根据提供的函数,对传入的序列做映射
语法定义如下
1 | map(function, iterable, ...) |
function
: 函数iterable
: 一个or多个序列实例如下
1 | >>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5])) |
与global
对象,返回全部局部变量
1 | >>> def m(): |
将元组或字符串转换为列表
1 | >>> aTuple = (123, 'hello', {'a':123}) |
len()
可以用来返回字符串,列表,字典,集合,元组等的长度or个数
1 | >>> len([1,2,3,4]) |
判断参数class
是否是类型参数 classinfo
的子类。
1 | issubclass(class, classinfo) |
请注意:两个参数必须都是类
这个比较好理解了,简单举例说明
1 | >>> class A: |
如果我们需要判断一个对象的类型,则推荐使用上一篇介绍的isinstance()
,如
1 | >>> isinstance(B(), A) |
因为python是弱类型语言,所以拿到一个变量我们实际上是不确定它是什么类型的,这个时候就可以借助isinstance
来判定
1 | >>> isinstance('123', int) |
将一个字符串或数字转换为整型
注意:int函数第二个参数可以指定进制数,实现将其他进制的字符串转换为十进制的整数
1 | >>> int('11') |
上面分别演示的是十进制、二进制、八进制、十六进制的字符串转整数
接收标准输入,返回String类型,用于与外界打交道
1 | >>> a = input('enter: ') |
返回对象的唯一标识符,标识符是一个整数
1 | >>> id('hello world') |
注意,上面两个字符串并不一样,但是返回的标识相同,实际上这两个字符串指向的是同一个内存,只是长度不一样而已
help,主要就是用来显示帮助信息,如果对某个函数的用法不太清楚,就可以直接通过help
来查看(在普遍用idea作为开发工具的情况下,基本上不太会用到…)
1 | help('str') |
计算一个对象or数字or字符串的hash值
1 | >>> hash('hello world') |
判断对象是否包含某个属性
1 | >>> class A: |
以字典的方式返回当前的所有的局部变量
1 | >>> globals() |
字符串格式化函数 str.format()
1 | >>> "{} {}".format("hello", "world") |
除了使用上面序号的方式,还可以用key的方式,如下
1 | >>> "{name} haha {age}".format(name='yhh', age=20) |
注意,传参为dict时,前面要加两个星号
数字格式化
1 | >>> "{:.2f}".format(3.1415926) |
用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换
1 | filter(function, iterable) |
实例如下
1 | >>> def f(s): |
执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码
举例如下:
1 | >>> exec('print("Hello World")') |
进阶
exec除了接收上面的python语句块之外,还可以接收表示全局和局部命名空间的参数
如
1 | >>> x = 10 |
顾名思义,这个使用来删除属性的
delattr(x, 'foobar')
相等于del x.foobar
举例说明
1 | class A: |
不太知道什么场景会用这个
主要用来执行字符串表达式,和 compile
有一些区别,后者功能更加强大,可以编译字符串格式的python代码,而eval更多的是基础运算
举例如下:
1 | >>> a = 10 |
请注意,eval对表达式有限定,如果需要更丰富的支持,可以考虑exec
数学中的复数,通过complex
可以简单的生成
1 | >>> complex(1, 2) |
注意,字符串转换时,加号左右两边不能有空格
将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
一个常见的使用case
1 | >>> seq = ['one', 'two', 'three'] |
接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b)
1 | >>> divmod(10, 3) |
不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表
语法
1 | dir([object]) |
实例
1 | >>> class A: |
Update your browser to view this website correctly. Update my browser now