Python实现MATLAB里的结构体

定义空类

class data1:
    pass

然后实例

n=10
Data=[data1()]*n  # N为结构体长度

#赋值

Data[0].id='w'

Data[0].num=[1,2,3]

Data[n].id=['x']


发现这么写有个问题,来更新

用Data=[data1()]*n 的方式创建发现,只要修改一个,其他所有的都变了

目前只找到一个解决方案:用Data=[data1(), data1(),data1(),data1()]   代替Data=[data1()]*4

但如果有100个条目要放进去呢,这么复制粘贴太蠢了


继续更新

今天忽然想到,只修改一个项目其他的都跟着变,可能跟之前在课程里刷到的浅拷贝深拷贝有关,进过一番百度总结出以下代码,创建结构体的任务历时五天总算搞定了

import copy

class data1:  #空类
    pass

n=10
data=[]

for i in range(n):   
    data.append(copy.deepcopy(data1()))
    

data[0].id='s0'   #赋值

data[2].id='s2'

data[1].id='s1'



data[0].id  #查看,没有被后面的赋值改变
Out[49]: 's0'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值