简体   繁体   English

编辑:如何在Python中声明结构数组

[英]Edited : how to declare array of struct in Python

EDITED ALL 编辑全部

import struct
from collections import namedtuple

FDResult = namedtuple('FDResult', ['DeviceID', 'PageNum'])
#bla = [FDResult(DeviceID='NR0951113', PageNum=[1,2,3,4]),
 #FDResult(DeviceID='NR0951114', PageNum=[17,28,63,64]),
 #FDResult(DeviceID='NR0951115', PageNum=[2,3,4,5])]

bla = [FDResult(DeviceID='NR0951115', PageNum=[1])] #how to declare bla as FDResult array and blank data inside,Length of bla should equal 0
bla.append(FDResult(DeviceID='NR0951112', PageNum=[2])) 
print(len(bla))

bla[0].PageNum.append(16)

how to declare array of struct in Python? 如何在Python中声明结构数组?
FDResult array and blank data inside,Length of bla should equal 0 FDResult数组和内部空白数据,bla的长度应等于0

ANSWER 回答

FDResult = namedtuple('FDResult', ['DeviceID', 'PageNum'])
#bla = [FDResult(DeviceID='NR0951113', PageNum=[1,2,3,4]),
 #FDResult(DeviceID='NR0951114', PageNum=[17,28,63,64]),
 #FDResult(DeviceID='NR0951115', PageNum=[2,3,4,5])]
NodeList = []

Node = FDResult(DeviceID='NR0951113', PageNum=[1,2,3,4])
NodeList.append(Node)
print(len(NodeList))
NodeList[0].PageNum.append(16)

You can create namedtuple array like this. 您可以像这样创建namedtuple数组。

from collections import namedtuple

MyStruct = namedtuple('MyStruct', 'Mark nPackLen nFlag nGisIp nPort sData sEnd')

NodeList = []
Node = MyStruct(None, '', '', '', '',  -1, 0)
for id in range(4):
     NodeList.append(Node)

If length of bla should be zero, just create an empty list: 如果bla长度应为零,则只需创建一个空列表:

bla = []

A Python list can contain objects of any type. Python列表可以包含任何类型的对象。 If bla is only supposed to hold FDResult instances, it is your responsibility as programmer not to put anything else there. 如果bla仅应保留FDResult实例,则作为程序员的职责是不要在其中放置任何其他内容。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM