我正在做一个涉及加速计和arduino的项目。我在笔记本电脑方面使用Python。加速计向笔记本电脑发送大量字节。到目前为止,我的代码是将前100个字节放入一个列表中
my_list = []
data = ser.read(100)
for n in data:
n = ser.read(size=1)
y = int.from_bytes(n,byteorder='big')
my_list.append(y)
我知道一个数字(48)经常出现,我想要48之后的六个数字。因此:
if 48 in my_list:
my_list.index(48)
x0 = my_list[(my_list.index(48))+1]
x1 = my_list[(my_list.index(48))+2]
y0 = my_list[(my_list.index(48))+3]
y1 = my_list[(my_list.index(48))+4]
z0 = my_list[(my_list.index(48))+5]
z1 = my_list[(my_list.index(48))+6]
这很好,但我需要一种方法,这样一旦完成,它就可以通过列表继续到下一个48,并重复这个过程。并一直这样做直到列表结束。 有人能帮忙吗?我认为使用iter功能可能会起作用,但不确定如何使用它来实现这一点
您可以使用
itertools.islice
:您可能还应该使用try/except,因为如果在最后6个元素中的任何一个元素中有48个元素,您将得到一个错误,因为如果剩下的项目少于7个,您将无法在之后获得6个项目:
您可以使用生成器:
然后像这样使用它:
相关问题 更多 >
编程相关推荐