有没有办法在python中创建保持其长度固定的数组?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了有没有办法在python中创建保持其长度固定的数组?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1519字,纯文字阅读大概需要3分钟。
内容图文
![有没有办法在python中创建保持其长度固定的数组?](/upload/InfoBanner/zyjiaocheng/728/f94d8cb946e147af818dedddd397db00.jpg)
为了实时绘制python中的COM端口数据,我需要创建一个固定长度的数组,如果接收到新值,它将保持最后一个索引,当数组被填充时,在下次更新时,它会在第一个索引处转储值.换句话说,它将最新值保留在最后一个索引处并在第一个索引处清空值(以保持长度固定)
解决方法:
你所描述的基本上是一个固定长度的双端队列(通常称为双端队列).
您可以使用Python的内置双端队列:
from collections import deque
d = deque(maxlen=2)
for i in range(10):
d.append(i)
print(d)
# deque([0], maxlen=2)
# deque([0, 1], maxlen=2)
# deque([1, 2], maxlen=2)
# deque([2, 3], maxlen=2)
# deque([3, 4], maxlen=2)
# deque([4, 5], maxlen=2)
# deque([5, 6], maxlen=2)
# deque([6, 7], maxlen=2)
# deque([7, 8], maxlen=2)
# deque([8, 9], maxlen=2)
您也可以使用appendleft而不是append:
for i in range(10):
d.appendleft(i)
print(d)
# deque([0], maxlen=2)
# deque([1, 0], maxlen=2)
# deque([2, 1], maxlen=2)
# deque([3, 2], maxlen=2)
# deque([4, 3], maxlen=2)
# deque([5, 4], maxlen=2)
# deque([6, 5], maxlen=2)
# deque([7, 6], maxlen=2)
# deque([8, 7], maxlen=2)
# deque([9, 8], maxlen=2)
或者,如果你想要它反过来你可以继承列表并实现自己追加.请注意略有不同的结果:
class MyList(list):
def __init__(self, max_len, *args, **kwargs):
super().__init__(*args, **kwargs)
self.max_len = max_len
def append(self, obj):
if len(self) < self.max_len:
super().append(obj)
else:
self.insert(0, obj) # inserting to the left
self.pop() # deleting the last element on the right
li = MyList(2)
for i in range(10):
li.append(i)
print(li)
# [0]
# [0, 1]
# [2, 0]
# [3, 2]
# [4, 3]
# [5, 4]
# [6, 5]
# [7, 6]
# [8, 7]
# [9, 8]
内容总结
以上是互联网集市为您收集整理的有没有办法在python中创建保持其长度固定的数组?全部内容,希望文章能够帮你解决有没有办法在python中创建保持其长度固定的数组?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。