易被忽略的Python内置类型
|
Python中的内置类型是我们开发中最常见的,很多人都能熟练的使用它们。 然而有一些内置类型确实不那么常见的,或者说往往会被我们忽略,所以这次的主题就是带领大家重新认识这些“不同寻常”的内置类型。 (注意:本文基于python3,不会包含任何python2相关内容) 本文索引: 不可变集合(frozenset)与普通的set一样,只不过它的元素是不可变的,因此诸如 >>> frozen = frozenset([1,1,2,3,4,5,6,6])
frozenset({1,6})
>>> frozen | {1,7,8}
frozenset({1,8})
>>> frozen ^ {1,8}
frozenset({4,8})
其实原因很简单,因为大部分人熟悉 答案揭晓: >>> range 是的, >>> range.__iter__ 因此,
>>> b = '测试用例a'.encode('utf8')
>>> b[-1] = 98 # change 'a' -> 'b'
Traceback (most recent call last):
File "
而当我们把bytes的内容复制给 >>> array = bytearray(b)
>>> array[-1] = 98
>>> array.decode('utf8')
测试用例b
另外 >>> array.hex()
'e6b58be8af95e794a8e4be8b62'
>>> bytearray().fromhex('e6b58be8af95e794a8e4be8b62').decode('utf8')
'测试用例b'
对于使用完毕的 结合示例可以更清晰地了解这些特性: >>> data = bytearray(b'abcefg') >>> v = memoryview(data) >>> v.readonly False >>> v[0] = ord(b'z') >>> data bytearray(b'zbcefg') >>> v[1:4] = b'123' >>> data bytearray(b'z123fg') >>> v[2:3] = b'spam' Traceback (most recent call last): File " 准确的说,这不是一种类型,而是一种概念。然而typing里仍然将其视为一种类型,所以也就罗列在此了。 概念: 对于views对象,可以使用len,成员检测,它本身也是可迭代对象: >>> dishes = {'eggs': 2,'sausage': 1,'bacon': 1,'spam': 500}
>>> keys = dishes.keys()
>>> values = dishes.values()
从例子中可以看出,views保持着元素的插入顺序(插入顺序的保证从python3.6开始)以及views动态反应了key/value的插入和删除以及修改,因此在某些场景下views对象是相当有用的。
它没什么特殊的含义,仅表示省略,通常被用在type hints中: >>> ... Ellipsis from typing import Callable func: Callable[...,None] = lambda x,y:print(x*y) func是一个没有返回值的函数,参数列表没有做任何限制。 你也可以写成 以上就是这些容易被忽略和遗忘的内置类型,如有错误和疏漏欢迎指出。 (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 使用python中的csv模块写入特定单元格
- dict.viewkeys()返回的数据类型是什么? [python 2.7]
- python – “I; 16”图像文件的numpy.array
- pythonic方式将变量转换为列表
- 什么是好的编程问题,以在Python中运用“if … else”?
- python基础 面向对象编程
- 【Python】ufunc subtract did not contain a loop with si
- python – 为什么pow(x,y)的时间复杂度为O(1),而x ** y为O(
- python – 近似大对称矩阵的最高3个特征值和特征向量的快速
- 从Python dir()调用模块
- python – 基本的paramiko exec_command帮助
- django-forms – 如何使用modelformset_factory创
- python – 在pylint中强制字符串格式
- 错误:输入’for’Python时没有可行的替代方案
- python – [sock] = func()是什么意思?
- AIX上的Python:我的选择是什么?
- python – TypeError:尝试模拟classmethod时的未
- Python – 有没有办法等待os.unlink()或os.remov
- python – sqlalchemy将mixin列移动到最后
- 在Python中存储三角形/六边形网格的最佳方法
