190717 Python 内置函数之zip

接收一个or多个迭代器,将对象中对应的元素打包成一个个元组,如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同

1
2
3
4
5
6
7
>>> list(zip([1,2,3], ['a', 'b', 'c']))
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> list(zip([1,2,3], ['a', 'b', 'c'], ['!', "@"]))
[(1, 'a', '!'), (2, 'b', '@')]

>>> list(zip(*[(1, 4), (2, 5), (3, 6)]))
[(1, 2, 3), (4, 5, 6)]

说明:借助*可以将zip打包的元组解压为之前的数据

190717 Python 内置函数之vars

返回对象object的属性和属性值的字典对象

1
2
3
4
5
6
>>> class A:
... x = 10
... y = 20
...
>>> vars(A)
mappingproxy({'__module__': '__main__', 'x': 10, 'y': 20, '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None})

190717 Python 内置函数之type

返回参数类型

  • type: 不认为子类与父类类型相同
  • isinstance: 子类是一种父类类型

语法

1
2
type(object)
type(name, bases, dict)

上面两种用法表示的含义不同

  • 一个参数:返回对象类型
  • 三个参数:根据定义返回一个新的类型对象
    • name 类名
    • bases 父类
    • dict 字典

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> type('str')
<class 'str'>
>>> type(b'123')
<class 'bytes'>
>>> type('123')
<class 'str'>

>>> x = type('x', (object,), dict(a=1))
>>> x
<class '__main__.x'>
>>> a = x()
>>> a.a
1

190717 Python 内置函数之tuple

将可迭代系列(如列表)转换为元组

1
2
3
4
>>> tuple([1,2,3])
(1, 2, 3)
>>> tuple({'a': 1, 'b': 2})
('a', 'b')

190717 Python 内置函数之super

访问父类中的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
>>> class A:
... def m(self):
... return 'A'
>>> class B:
... def m(self):
... return 'B'
...

>>> class C(A):
... def m(self):
... print(super().m())
...
>>> C().m()
A

>>> class D(A,B):
... def m(self):
... a = super(D, self).m()
... print(a)
...
>>> D().m()
A

注意,在多继承时,会从左到右找匹配的方法,广度优先

190717 Python 内置函数之str

将对象转化为字符串

1
2
3
4
5
6
7
8
>>> str([1,2,3])
'[1, 2, 3]'
>>> str((1,'a'))
"(1, 'a')"
>>> str({'a': 123, 'b': 456})
"{'a': 123, 'b': 456}"
>>> str(b'hello')
"b'hello'"

190717 Python 内置函数之staticmethod

修饰静态方法

1
2
3
4
5
6
7
>>> class A:
... @staticmethod
... def m():
... return 10
...
>>> A.m()
10

190717 Python 内置函数之sorted

对所有可迭代的对象进行排序

1. 语法

1
sorted(iterable, key=None, reverse=False)
  • iterable: 可迭代对象
  • key: 用于比较排序的元素
  • reverse: True降序 False升序

返回排好序的列表

2. 实例

1
2
3
4
5
6
7
8
>>> a = [1,3, 2, 9, 4]
>>> sorted(a)
[1, 2, 3, 4, 9]
>>> a
[1, 3, 2, 9, 4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 9]

注意:列表的sort()方法无返回直接作用于列表; sorted()有返回,原对象不变

1
2
3
>>> a=[('b',2),('a',1),('c',3),('d',4)]
>>> sorted(a, key=lambda x:x[1])
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

II. 其他

1. 一灰灰Bloghttps://liuyueyi.github.io/hexblog

一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

2. 声明

尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

3. 扫描关注

一灰灰blog

QrCode

190717 Python 内置函数之slice

切片,主要用于切片操作函数里的参数

语法

1
2
slice(stop)
slice(start, stop[,step]
  • start: 开始位置
  • stop: 结束位置
  • step: 步长

举例

1
2
3
4
>>> list(range(0, 10))[slice(4)]
[0, 1, 2, 3]
>>> list(range(0, 10))[slice(2, 8, 3)]
[2, 5]

190717 Python 内置函数之setattr

与 getattr对应,设置属性值(属性可以不存在)

1
2
3
4
5
6
7
class A:
... x = 10
...
>>> a = A()
>>> setattr(a, 'b', 20)
>>> a.b
20

190717 Python 内置函数之set

创建一个无序不重复元素集

1
2
3
4
>>> set([1,2,3,2,1])
{1, 2, 3}
>>> set('hello')
{'h', 'o', 'e', 'l'}

注意传参为可迭代对象

190716 Python 内置函数之round

返回浮点数 x 的四舍五入值,准确的说保留值将保留到离上一位更近的一端(四舍六入)

会有精度丢失,要求高的,不要用

1
2
3
4
5
6
>>> round(2.674, 2)
2.67
>>> round(2.675, 2)
2.67
>>> round(2.6751, 2)
2.68

注意,如果保留位的后一个为5时,需要再往后看一位,如果有,则进;没有则舍

190716 Python 内置函数之repr

返回对象的string格式

1
2
3
4
5
6
7
8
9
>>> repr([1,2,3])
'[1, 2, 3]'
>>> repr('bca')
"'bca'"
>>> class A:
... x = 10
...
>>> repr(A())
'<__main__.A object at 0x10f079f98>'

190716 Python 内置函数之range

返回可迭代的对象

语法

1
range(start, stop[,step])
  • start: 默认从0开始
  • stop: 到stop结束,不包含stop
  • step: 步长

举例

1
2
3
4
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
>>> list(range(2))
[0, 1]

190716 Python 内置函数之print

可以说是最常见的一个函数了,除了常见的输出在终端之外,还支持输出到文件

语法定义

1
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
  • objects: 输出的对象,用英文逗号分隔
  • sep: 多个对象输出时,间隔符号
  • end: 结尾符号
  • file: 写入的文件对象,sys.stdout标准输出
  • flush: 写文件时,如果设置True,表示强制刷新

190716 Python 内置函数之pow

计算n次方

1
2
3
4
5
6
>>> pow(4, 0.5)
2.0
>>> pow(4, 2)
16
>>> pow(100, -2)
0.0001

190716 Python 内置函数之ord

与前面介绍的chr配对,返回字unicode字符对应的ascii/unicode码

1
2
3
4
5
6
>>> ord('a')
97
>>> ord('灰')
28784
>>> chr(28784)
'灰'

190716 Python 内置函数之open

打开文件,常配合with语句使用

语法

1
open(file, mode='r',  buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

参数说明

  • file: 必需,文件路径(相对或者绝对路径)。
  • mode: 可选,文件打开模式
  • buffering: 设置缓冲
  • encoding: 一般使用utf8
  • errors: 报错级别
  • newline: 区分换行符
  • closefd: 传入的file参数类型
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×