提供对类列表对象的基于引用的访问

spanning的Python项目详细描述


python跨度

提供SpanReadOnlySpan类的简单库。它们的思想与C#'s Span<T>非常相似,但是它们是它的纯python实现。开始点和结束点是通过python的slice对象处理的,这意味着负的结束点和开始工作与预期的一样,而步骤工作是对切片列表执行。

类提供对类列表对象的某些部分的读/写和只读访问,而不必通过普通切片重新分配它们。任何可以被索引并且具有长度的对象都可以使用,这意味着您甚至可以在字符串上创建ReadOnlySpans(在处理可能从文件中读取的大型字符串时非常有用)。

这些类在查看列表中非常长(超过100000个项)的某些区域时非常有用。使用这些类如下:

importmathdata=get_data()# returns a very large list# we only want the first half of the listend=int(math.ceil(len(data)/2))# without spanfirst_half=data[:end]# copies the entire first half# with spanfirst_half=Span(data,0,end)# no copies, just a reference is stored, acts like a list of half the length

在上面的示例中,如果列表很长(例如1000000个项),那么第一个示例会将整个列表的后半部分复制到新变量中,而第二个示例只存储引用和您请求的起点和终点。然后,新的SPAN对象的行为将完全像一个长度为一半的列表(例如,len将返回500000的长度,例如前面的示例)。唯一完成的分配是针对SPAN对象本身,并且该对象在内部存储的数据很少(只有开始、结束和步骤值以及对象引用),这意味着它本身对内存的影响很小。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
添加组件后,java JTable为空   java将json发送到php并插入mysql,但返回null   java Spring引导JNDI CommonJ资源   从不同PC创建和合并后的Java servlet问题   java如何在使用findelements时从xpath获取文本   java使用spring boot使用gmail smtp发送电子邮件   java在不使用pojo、bean或getter和setter的情况下获取Json标题的Json数组   Java中的OpenFile对话框将null作为响应   JavaBuilder模式。扩展接口   java中无需替换的数据结构选取   java如何评价Encog中的预测神经网络   java如何在安卓中使用实际的HttpURLConnection进行单元测试?   java使用XML配置禁用WebSocket中的CSRF保护   java如何通过hibernate从多表查询中获取数据?   mysql如何在java中获取更新的行Id   java AEM/CQ组件单一组件/有限组件   java FFmpeg Javacv延迟问题   显示整数数组的java不起作用