亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
Python中使用類(lèi)似C語(yǔ)言的結(jié)構(gòu)(Struct)
[打印本頁(yè)]
作者:
sunny7476
時(shí)間:
2012-04-22 14:44
標(biāo)題:
Python中使用類(lèi)似C語(yǔ)言的結(jié)構(gòu)(Struct)
在一篇帖子中看到一位朋友需要在Python中使用類(lèi)似C語(yǔ)言中的結(jié)構(gòu)體。原本想直接回復(fù)的,后來(lái)想,為了方便更多的人看到,就新開(kāi)一個(gè)帖子了。
在Python中使用結(jié)構(gòu)體,所要做的僅僅是下載NumPy,用其中的dtype來(lái)實(shí)現(xiàn),實(shí)現(xiàn)方法為:
首先
,如同C語(yǔ)言一樣,新建結(jié)構(gòu)體:
Python:
A = numpy.dtype({'names': ['languageName', 'ranking'],
'formats': ['S10', 'i']}, align = True)
復(fù)制代碼
C:
typedef struct A
{
char a[10];
int b;
}SA
復(fù)制代碼
解釋
,'names'和'formats'都是結(jié)構(gòu)體數(shù)組中的鍵域,不能更改成其他名稱(chēng)。names字段相當(dāng)于結(jié)構(gòu)體中的每個(gè)成員,formats字段為結(jié)構(gòu)體中按序?qū)?yīng)的成員的格式,如本例中formats字段第一項(xiàng)內(nèi)容為S10,表示對(duì)應(yīng)的names成員languageName的格式為長(zhǎng)度10個(gè)字節(jié)的字符串;同樣,formats的第二項(xiàng)"i"表示names第二個(gè)成為為32位的整型。
最后的align = True是讓Python中的結(jié)構(gòu)數(shù)組內(nèi)存對(duì)齊。詳見(jiàn)張若愚所著的《Python科學(xué)計(jì)算》P31.
接下來(lái)
,新建一個(gè)結(jié)構(gòu)數(shù)組a:
a = numpy.array([("C", 1), ("Java", 2), ("Python", 8)], dtype = A)
復(fù)制代碼
現(xiàn)在,就可以像C語(yǔ)言中一樣使用結(jié)構(gòu)數(shù)組a了,所不同的是訪問(wèn)a[0]的第一個(gè)成員使用的方法為:
a[0]["languageName"]
復(fù)制代碼
截圖如下
:
未命名.jpg
(53.46 KB, 下載次數(shù): 112)
下載附件
2012-04-22 14:44 上傳
作者:
千年老狼
時(shí)間:
2012-04-22 21:16
新手幫頂
lol
lol
作者:
sunny7476
時(shí)間:
2012-04-22 22:26
謝謝!
作者:
favory
時(shí)間:
2012-04-23 11:45
謝謝! 學(xué)習(xí)啦,幫頂!
作者:
qxhgd
時(shí)間:
2015-04-29 17:23
其實(shí)用字典應(yīng)該也可以的吧
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2