簡體   English   中英

編輯:如何在Python中聲明結構數組

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

編輯全部

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中聲明結構數組?
FDResult數組和內部空白數據,bla的長度應等於0

回答

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)

您可以像這樣創建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)

如果bla長度應為零,則只需創建一個空列表:

bla = []

Python列表可以包含任何類型的對象。 如果bla僅應保留FDResult實例,則作為程序員的職責是不要在其中放置任何其他內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM