python实现c++结构体
2019-04-23 本文已影响0人
1直领悟不够
c++:
结构体声明
struct item
{
char name[32];
int size;
char Address[72];
};
python: 定义一个类
class item(object):
def __init__(self):
self.name = ' ' # 名称
self.size = 10 # 尺寸
self.adress = [] # 列表
a = item() # 定义结构对象
a.name = 'cup'
a.size = 8
a.adress.append('water')
或者使用numpy:
import numpy as np
#构建一个包含 name,age,weight 三个变量的结构化数组,其内容如下:
>>name = ['Alice', 'Bob', 'Cathy', 'Doug']
>>age = [25, 45, 37, 19]
>>weight = [55.0, 85.5, 68.0, 61.5]
#出于初始化的考虑,构建一个空的结构化数组:
>>x = np.zeros(4, dtype=int)
# 构造一个拥有复合数据类型的结构化数组
>>data = np.zeros(4, dtype={'names':('name', 'age', 'weight'), 'formats':('U10', 'i4', 'f8')})
>>print(data.dtype)
[('name', '<U10'), ('age', '<i4'), ('weight', '<f8')]
对数组中的变量进行赋值:
>>data['name'] = name
>>data['age'] = age
>>data['weight'] = weight
>>print(data)
[('Alice', 25, 55. ) ('Bob', 45, 85.5) ('Cathy', 37, 68. )
('Doug', 19, 61.5)]
这样就成功构建了一个结构化数组。接下来,查看一下这个数组的具体内容:
# 查看所有的 name
>>data['name']
['Alice' 'Bob' 'Cathy' 'Doug']
# 查看数组的第一行
>>data[0]
('Alice', 25, 55.)
# 查看所有 age 小于30的记录的 name
>>data[data['age'] < 30]['name']
['Alice' 'Doug']