ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python数据模型

2021-12-15 15:02:26  阅读:161  来源: 互联网

标签:__ 10 deque python maxlen 数组 数据模型 dq


特殊方法

如何使用特殊方法

特殊方法的存在是为了被Python解释器调用的,你自己不需要调用

  • 自定义类型:len(myObject)执行时,Python会自动调用由你实现的__len__方法

  • 内置类型(list、str…):__len__会直接返回PyVarObject里的ob_size属性,完全不会调用任何方法。PyVarObject表示内存中长度可变的内置对象的C语言结构体

__repr__ 和 __str__ 的区别

都是字符串表示形式

  • 前者方便调试和记录日志

  • 后者是在str()函数被使用,或在用print函数打印一个对象时才被调用,它返回的字符串对终端用户更友好

数据结构

数组

Python 数组跟 C 语言数组一样精简。创建数组需要一个类型码,这个类型码用来表示在底层的 C 语言应该存放怎样的数据类型。比如 b 类型码代表的是有符号的字符(signedchar),因此 array(‘b’) 创建出的数组就只能存放一个字节大小的整数,范围从 -128 到127,这样在序列很大的时候,我们能节省很多空间。而且 Python 不会允许你在数组里存除指定类型之外的数据。
在这里插入图片描述

# 创建一个有 1000 万个随机浮点数的数组
from array import array
from random import random

floats = array('d', (random() for i in range(10**7)))

双向队列

collections.deque 类(双向队列)是一个线程安全、可以快速从两端添加或者删除元素的
数据类型。而且如果想要有一种数据类型来存放“最近用到的几个元素”,deque 也是一个
很好的选择。

>>> from collections import deque
>>> dq = deque(range(10), maxlen=10) 
>>> dq
deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxlen=10)
>>> dq.rotate(3) 
>>> dq
deque([7, 8, 9, 0, 1, 2, 3, 4, 5, 6], maxlen=10)
>>> dq.rotate(-4)
>>> dq
deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 0], maxlen=10)
>>> dq.appendleft(-1) 
>>> dq
deque([-1, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxlen=10)
>>> dq.extend([11, 22, 33]) 
>>> dq
deque([3, 4, 5, 6, 7, 8, 9, 11, 22, 33], maxlen=10)
>>> dq.extendleft([10, 20, 30, 40]) 
>>> dq
deque([40, 30, 20, 10, 3, 4, 5, 6, 7, 8], maxlen=10)

标签:__,10,deque,python,maxlen,数组,数据模型,dq
来源: https://blog.csdn.net/qq_42899028/article/details/121940429

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有