1.python 中的拷贝:Copy and deepCopy

本文深入探讨了Python中浅度拷贝与深度拷贝的概念,通过实例展示了它们在不同场景下的应用及区别,特别针对序列与字典的拷贝操作进行了详细说明。
浅度拷贝和深度拷贝
第一个是象序列的分片操作[:] 或着是字典的copy方法.
第二个是深度嵌套结构的象类和实例的deepcopy
>>> import copy
>>> listOne=[1,2,3,3]
>>> li = listOne
>>> li
[1, 2, 3, 3]
>>> listOne.append(32)
>>> li
[1, 2, 3, 3, 32]
>>> li=listOne[:]
>>> li
[1, 2, 3, 3, 32]
>>> listOne.append(123)
>>> li
[1, 2, 3, 3, 32]
>>> listOne
[1, 2, 3, 3, 32, 123]
>>> listOne=[{"name":"Willie","city":"Providence,RI"},1,"tomato",3.0]
>>> listTwo = listOne[:]
>>> listTwo
[{'city': 'Providence,RI', 'name': 'Willie'}, 1, 'tomato', 3.0]
>>> listThree = copy.deepcopy(listOne)
>>> listThree
[{'city': 'Providence,RI', 'name': 'Willie'}, 1, 'tomato', 3.0]
>>> listOne.append('kid')
>>> listOne[0]["city"]='San Francisco,CA'
>>> print listOne,listTwo,listThree
[{'city': 'San Francisco,CA', 'name': 'Willie'}, 1, 'tomato', 3.0, 'kid'] [{'city': 'San Francisco,CA', 'name': 'Willie'}, 1, 'tomato', 3.0] [{'city': 'Providence,RI', 'name': 'Willie'}, 1, 'tomato', 3.0]
内容概要:本文档介绍了基于3D FDTD(时域有限差分)方法在MATLAB平台上对微带线馈电的矩形天线进行仿真分析的技术方案,重点在于模拟超MATLAB基于3D FDTD的微带线馈矩形天线分析[用于模拟超宽带脉冲通过线馈矩形天线的传播,以计算微带结构的回波损耗参数]宽带脉冲信号通过天线结构的传播过程,并计算微带结构的回波损耗参数(S11),以评估天线的匹配性能和辐射特性。该方法通过建立三维电磁场模型,精确求解麦克斯韦方程组,适用于高频电磁仿真,能够有效分析天线在宽频带内的响应特性。文档还提及该资源属于一个涵盖多个科研方向的综合性MATLAB仿真资源包,涉及通信、信号处理、电力系统、机器学习等多个领域。; 适合人群:具备电磁场与微波技术基础知识,熟悉MATLAB编程及数值仿真的高校研究生、科研人员及通信工程领域技术人员。; 使用场景及目标:① 掌握3D FDTD方法在天线仿真中的具体实现流程;② 分析微带天线的回波损耗特性,优化天线设计参数以提升宽带匹配性能;③ 学习复杂电磁问题的数值建模与仿真技巧,拓展在射频与无线通信领域的研究能力。; 阅读建议:建议读者结合电磁理论基础,仔细理解FDTD算法的离散化过程和边界条件设置,运行并调试提供的MATLAB代码,通过调整天线几何尺寸和材料参数观察回波损耗曲线的变化,从而深入掌握仿真原理与工程应用方法。
>>> import pandapower as pp >>> import pandapower.networks as nw >>> import matplotlib.pyplot as plt >>> import numpy as np >>> >>> # 修正1:正确创建IEEE 33节点网络 (移除了无效的with_der参数) >>> net = nw.case33bw() # 使用正确的函数名创建IEEE 33节点网络 >>> >>> # 修正2:定义DG接入点和容量范围 >>> dg_buses = [6, 16, 24, 30] # 关键接入位置 >>> capacities = np.arange(0, 5.1, 1.0) # DG容量范围0-5MW (步长1MW) >>> >>> # 修正3:封装分析函数,避免net未定义问题 >>> def analyze_dg_impact(net_copy, dg_bus, capacities): ... """ ... DG接入影响分析函数 ... :param net_copy: 网络副本 ... :param dg_bus: DG接入节点 ... :param capacities: DG容量列表 ... :return: (最低电压列表, 网损列表) ... """ ... voltages = [] ... losses = [] ... ... for cap in capacities: ... # 复制网络避免修改原始网络 ... net_temp = net_copy.deepcopy() ... ... # 移除现有DG(避免重复) ... if len(net_temp.sgen) > 0: ... net_temp.sgen = net_temp.sgen.drop(net_temp.sgen.index) ... ... # 添加新DG(修正语法) ... pp.create_sgen(net_temp, bus=dg_bus, p_mw=cap, q_mvar=0) ... ... # 运行潮流计算 ... pp.runpp(net_temp) ... ... # 记录结果 ... voltages.append(net_temp.res_bus.vm_pu.min()) # 最低电压 ... losses.append(net_temp.res_line.pl_mw.sum()) # 总网损 ... ... return voltages, losses ... >>> # 执行多场景仿真(修正语法) >>> results = {} >>> for bus in dg_buses: ... results[f"节点{bus}"] = analyze_dg_impact(net, bus, capacities) ... <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() <stdin>:14: DeprecationWarning: Use copy.deepcopy(net) instead of net.deepcopy() >>> # 结果可视化 >>> plt.figure(figsize=(12, 10)) <Figure size 1200x1000 with 0 Axes> >>> plt.rcParams['font.sans-serif'] = ['SimHei'] >>> plt.rcParams['axes.unicode_minus'] = False
10-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值