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

时间:2013-02-06 09:10:46

标签: python c arrays struct

全部编辑

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)

如何在Python中声明struct数组?
内部的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)

2 个答案:

答案 0 :(得分:0)

您可以像这样创建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)

答案 1 :(得分:0)

如果bla的长度应为零,则只需创建一个空列表:

bla = []

Python列表可以包含任何类型的对象。如果bla仅应该保留FDResult个实例,那么程序员不应该在那里放任何其他内容。