大佬教程收集整理的这篇文章主要介绍了我可以在Python列表上创建“视图”吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Python标准库中没有“列表切片”类(也不是内置的)。因此,您确实需要一个类,尽管它不必很大-尤其是如果您对“只读”和“紧凑”切片感到满意。例如:
import collections
class ROListSlice(collections.SequencE):
def __init__(self, aList, start, alen):
self.aList = aList
self.start = start
self.alen = alen
def __len__(self):
return self.alen
def adj(self, i):
if i<0: i += self.alen
return i + self.start
def __getitem__(self, i):
return self.aList[self.adj(i)]
这有一些局限性(不支持“切片”),但对于大多数目的来说可以。
为了使这个序列R / W你需要添加__setitem__
,__delitem__
和insert
:
class ListSlice(ROListSlicE):
def __setitem__(self, i, v):
self.aList[self.adj(i)] = v
def __delitem__(self, i, v):
del self.aList[self.adj(i)]
self.alen -= 1
def insert(self, i, v):
self.aList.insert(self.adj(i), v)
self.alen += 1
以上是大佬教程为你收集整理的我可以在Python列表上创建“视图”吗?全部内容,希望文章能够帮你解决我可以在Python列表上创建“视图”吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。