菜鸟学Python(3):引用和引用参数

b站up“麦辣翅翅”《YOLOv8修改损失函数》问题解决RuntimeError: The size of tensor a (4) must match the size of tensor b站up“麦辣翅翅”《YOLOv8修改损失函数》问题解决RuntimeError: The size of tensor a (4) must match the size of tensor ;TypeError: bbox_iou() got an unexpected keyword argument 'xywh‘ 阅读详情
 菜鸟学Python(3):引用和引用参数
                                                              ---- 温铭  http://blog.youkuaiyun.com/wayne92
  在Python.cn的邮件列表中看到有人问了一个问题:

>>> a=[]
>>> b={'num':0,'sqrt':0}
>>> resurse=[1,2,3]
>>> for i in resurse:
 b[
'num']=i
 b[
'sqrt']=i*i
 a.append(b)


>>> a
[{
'num': 3, 'sqrt': 9}, {'num': 3, 'sqrt': 9}, {'num': 3, 'sqrt': 9}]

a为什么不是想象中的[{'num': 1, 'sqrt': 1}, {'num': 2, 'sqrt': 4}, {'num': 3, 'sqrt': 9}]呢?

开始也没有看明白,有人回复说是引用的原因。所以就写一些代码试一试:
>>> a=[]
>>> b={'num':0,'sqrt':0}
>>> b['num']=1
>>> b['sqrt']=1
>>> b
{
'num': 1, 'sqrt': 1}
>>> a.append(b)
>>> a
[{
'num': 1, 'sqrt': 1}]
>>> b['num']=2
>>> b['sqrt']=4
>>> b
{
'num': 2, 'sqrt': 4}
>>> a.append(b)
>>> a
[{
'num': 2, 'sqrt': 4}, {'num': 2, 'sqrt': 4}]

>>> id(a)
13346496
>>> id(a[0])
13335984
>>> id(a[1])
13335984
>>> id(b)
13335984
>>> a[0]['num']=4
>>> a
[{
'num': 4, 'sqrt': 4}, {'num': 4, 'sqrt': 4}]
>>> b
{'num': 4, 'sqrt': 4}

可以明显的看出a中的元素其实就是b的引用!

开始抄书:)(Python编程金典P92)
    和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。

说了半天,上面那个程序应该怎么处理才能实现想要的效果类?
>>> a=[]
>>> resurse=[1,2,3]
>>> for i in resurse:
    b
={'num':0,'sqrt':0}
      print id(b)
    b[
'num']=i
    b[
'sqrt']=i*i
    a.append(b)

13334544
13335120
13335840
>>> a
[{
'num': 1, 'sqrt': 1}, {'num': 2, 'sqrt': 4}, {'num': 3, 'sqrt': 9}]
这样就可以了。相当于每次都新建一个字典对象。但有些不好,如果i的值很大,就会占很多不必要的内存。
不如这样:
>>> a = []
>>> for i in (1, 2, 3, 4, 5, 6, 7):
    a.append({
"num": i, "sqrt": i * i})

    
>>> a
[{
'num': 1, 'sqrt': 1}, {'num': 2, 'sqrt': 4}, {'num': 3, 'sqrt': 9},
{
'num': 4, 'sqrt': 16},{'num': 5, 'sqrt': 25}, {'num': 6, 'sqrt': 36},
{
'num': 7, 'sqrt': 49}]


PCL 循环体素滤波 本文提出了一种自动循环体素滤波算法,用于解决点云配准中分辨率差异大、参数设置复杂的问题。算法通过计算点云分辨率(公式1),采用迭代方式调整体素尺寸(公式2),逐步逼近目标分辨率。该方法在保留几何特征的同时有效精简数据量,实现了均匀分辨率的自动调整。实验通过PCL库实现,展示了原始点云与滤波结果的对比效果,验证了算法在减少数据规模方面的有效性。该方法为点云配准提供了预处理解决方案,相关成果已发表于SCI期刊。 阅读详情

相关推荐

内网(极空间)搭建gitlab跳板机转发端口及域名配置

然后,回头尝试用内网地址+15022 clone,成功,用公网的ip+15222 clone失败,那就是定位到时nginx转发的问题了。首先想到的就是 git clone是通过ssh的22端口进行下载的,那就需要打通22端口,则又配置22端口的nginx转发。然后,我通过ssh命令,做一个端口转发,以实现内网穿透,将服务端口链接到跳板机上。然后穿透到阿里云服务器跳板机的端口,只能内网访问,需要用nginx做个转发,才能用公网ip进行访问。然后,如上,我的80端口,映射15080,22端口映射15022。

God丶Davide的博客 6074

Python中函数的高阶用法以及对文件的操作

python中函数是一段可以执行的代码,编译完就固定了,每个定义的函数在内存中只有一个实例,运行这个函数就可以执行这个函数,函数也可嵌套定义,就是在函数中可以定义另一个函数,这种嵌套的写法,就会产生闭包问题。如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。1、在Python中函数参数是传递引用,也就是数据的内存地址。3、对于可变类型来说,修改形参,会影响实参。2、对于不可变类型,修改形参,不影响实参。2、内部函数引用了外部函数的变量。3、返回值是内部函数。...

你华还是你华 2463

【两方演化博弈代码复现】:双方演化博弈的原理、概率博弈仿真、相位图、单个参数灵敏度演化

演化博弈论是研究个体在特定环境中如何通过策略选择与其他个体进行互动的学科。这一理论在生物学、经济学和社会科学等多个领域都有广泛应用。本文将深入探讨双方演化博弈的原理及其过程,并解读一段 MATLAB 代码,展示如何模拟这一过程。

当回首往事的时候,不会因虚度年华而悔恨,也不会因碌碌无为而羞愧。 6198

python中的引用

部分引用自         http://www.cnblogs.com/yuyan/archive/2012/04/21/2461673.html                            https://www.cnblogs.com/xinjing-jingxin/p/8620788.html 目录 一、引用简介 二、不可变数据类型的引用 2.1 字符串 2.2 浮点...

焦糖花粥 1万+

在 Windows 系统下使用 VMware 安装 Ubuntu 24.04 LTS 系统

Ubuntu24.04桌面端官方下载:https://cn.ubuntu.com/download/desktop。

u014695938的博客 1万+

《uni-app 长列表优化:虚拟列表(vue-virtual-scroller)解决 1000+ 数据渲染卡顿》(附虚拟列表封装与多端适配)

本文详细介绍了虚拟列表技术在前端长列表渲染中的优化方案。针对传统v-for渲染导致的性能问题(内存占用高、渲染阻塞、滚动卡顿),提出基于vue-virtual-scroller的虚拟列表解决方案,通过可视区域渲染和DOM复用实现性能突破。文章包含核心原理、组件封装、多端适配及性能对比,并给出常见问题的解决方法。实践表明,该方案可将1000条数据的首次渲染时间从3800ms降至420ms,滚动FPS提升至55帧,显著改善用户体验。

qq_59041750的博客 2107

一文读懂 Python 值传递和引用传递

在编程语言中,值传递(pass by value)和引用传递(pass by reference)是两个重要的概念。

pythonhy的博客 2533

STM32G474多通道ADC电压采集:软件触发与单次转换实战

本文详细介绍了STM32G474多通道ADC电压采集的实战方法,重点讲解了软件触发与单次转换的实现技巧。通过硬件设计、HAL库配置、多通道轮询采集及数据处理等环节的详细解析,帮助开发者高效完成精确电压采集任务。文章还提供了常见问题调试技巧和性能优化建议,适用于需要高精度电压监测的嵌入式应用场景。

weixin_28720767的博客 462

菜鸟教程《Python 3 教程》笔记(14):函数

笔记带有个人侧重点,不追求面面俱到。

猎猫骑巨兽的博客 1769

开源GIS -- 笔记

基础开发库 数据读写:GDAL/OGR(C/C++) ArcGIS和GE都是使用此工具 投影转换:Proj.4(C/C++) 拓扑计算:JTS(Java),GEOS(C++),Shapely(python) 组件式开发库 GeoTools(Java),DotSpatial(.NET) 空间分析: Scipy(通用科学计算、方程求解), numpy,NextworkX, rPy(统计分析), Scikit-learn,pysal(空间分析) 深度学习: Keras、 tensorflow、 pytor

DZ Space 4521

【FPGA教程案例55】深度学习案例2——基于FPGA的CNN卷积神经网络之ReLu激活层verilog实现

在本课程中,我们将对CNN的ReLu函数模块的FPGA实现做详细的介绍和学习。从仿真结果可知,通过Rule激活函数之后,小于的输入数据输出为0,否则输出是输入本身。,我们对CNN的基本原理有了初步认识。ReLu函数具备如下优缺点。按照课程1相似的操作方式。

FPGA/MATLAB学习教程/源码/项目合作开发 2691

菜鸟学Python——初识Python

很多初学Python的同学经常问我这样的问题:学Python应该看什么书啊?我会非常自信的把之前整理的Python教程扔给他,后来收到很多反馈:你的排版太烂了,你遗漏了好多知识点,能不能加一点练习题? 经过较长时间的反思,准备整理第二版Python基础教程--菜鸟学Python,第二版会加上自己这一段时间来学习python过程中的一些感悟,走过的弯路,毕竟之前的自己还是太嫩了,会补充之前遗漏的知...

sinat_34576567的博客 1104

CDD数据库文件制作(三)——服务配置(0x10)

根据诊断调查表进行每一步配置的详细操作,与背后逻辑解释 1.会话切换配置 1.1.根据诊断调查表进行信息提取(0x1001) 1.2.会话转换配置(0x1001) 1.3.根据诊断调查表进行信息提取(0x1002) 1.4.会话转换配置(0x1002) 1.5.根据诊断调查表进行信息提取(0x1003) 1.6.会话转换配置(0x1003) 1.7.会话切换配置完成后效果图 2.安全等级配置信息提取 2.1.安全访问配置(0x1001) 2.2.安全访问配置(0x1002) 2.3.安全访问配置(0x100

LOVE135149的博客 5838

菜鸟教程《Python 3 教程》笔记 EX 01:命令行参数

笔记带有个人侧重点,不追求面面俱到。

猎猫骑巨兽的博客 960

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python3菜鸟教程100例,python菜鸟教程100例

"cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。Python 3 已废弃,使用 (x>y)-(x。print("(4)complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。print("2)在整数除法中,除法 / 总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 //")(4)complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。

Clt216的博客 1381

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

跟着菜鸟学python--函数和参数讲解

函数的定义默认值参数默认参数的陷阱关键字参数可变参数 我们先来看看官方是怎么定义函数的 定义 函数使用关键字 def,后跟函数名与括号内的形参列表。函数语句从下一行开始,并且必须缩进。 为什么要有函数呢? 在我们写代码的时候如果从头写到尾其实也没问题,但是如果随着时间拉长,代码越来越多,这个时候就变得极其的难维护,而且如果我有的地方需要重复的引用一些功能,我也要重复的去写,这样非常的浪费时间。 例如我现在需要实现一个加法功能:我只用定义一个函数,函数里返回数字相加即可,后面我需要再次使用的时候调用add()

weixin_37615993的博客 422

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python3 零基础入门教程——跟着菜鸟教程学Python

用def# 定义一个简单的函数")# 调用函数hello() # 输出: Hello World!

野夫怒见不平事,磨损胸中万古刀! 342

python3菜鸟教程100例,菜鸟python在线编程

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(GPT 优快云教程文末GPT 优快云哈)

2401_85882059的博客 808

python菜鸟教程n_Python学习必备的三个网站

Hello大家好,欢迎来到【统计GO】,本公众号内容主要针对数据分析的爱好者,不定期分享一些好用的数据分析工具和机器学习资料,以及一些求职必备技能,帮助大家花更少的时间学更多的知识。 今天为大家推荐的是对于Python学习者必备的三个网站,并附上小编的推荐理由和网站地址。如果本期内容对您有所帮助,记得及时关注。菜鸟教程 菜鸟教程提供了编码的基础技术教程,包括Javascript、Python,J...

weixin_39886612的博客 429

Python从菜鸟到高手(17):改变函数参数的值

如果将一个变量作为参数传入函数,并且在函数内部改变这个变量的值,那么结果会怎么样呢?我们不妨做一个实验。 x = 20 s = "世界您好" def test(x,s): x = 40 s = "hello world" test(x,s) print(x,s) 执行这段代码,会输出如下图所示的内容。 在上面的代码中,首先定义了两个变量:x和s,然后将其传入test函数,并在该...

weixin_33749131的博客 4662

Python3 菜鸟查询手册

Python3 菜鸟查询手册 【下载地址】Python3菜鸟查询手册 这是一个专为Python3初学者和进阶者设计的查询手册,涵盖了从基础语法到高级编程技巧的全面内容。手册详细介绍了数据类型、运算符、函数、数据结构、模块、文件操作、错误处理、面向对象编程等核心知识点,并提供了丰富的实例代码和标准库使用方法。无论是学习Py...

gitblog_06737的博客 805

Python3 菜鸟教程 笔记1

菜鸟教程传送门https://www.runoob.com/python3/ 环境:Windows +python-3.7.4 $ 查看python版本 python -V ,注意:大写的V 例如以下是 helloworld.py 的内容 1)执行 python helloworld.py , "#!/usr/bin/python3" 被忽略,相当于注释 2)执行 ./helloworl...

皮卡丘在充电 987

python菜鸟教程w-菜鸟教程python离线文档:学习Python的教程?

菜鸟教程网的在线工具,请问该功能是用什么技术实现的?网站网页的实现有静,也有交互性动态的,前者开发简而后者相对比较复杂;网站常用的开发语言有:ASP、JSP、PHP、HTML、DIV CSS、JavaScript、Java等,有些相同的功能可以用不同的程序语言去开发,如果网页要实现的功能越多,那么所运用的开发语言当然随之增加;譬如:开发一个电子商务网站,则主要掌握的程序语言包括:PHP MySQL...

weixin_37988176的博客 823

菜鸟教程《Python 3 教程》笔记(8):字典

笔记带有个人侧重点,不追求面面俱到。

猎猫骑巨兽的博客 483

菜鸟学python

此为任务七的笔记

qq_43699447的博客 252
上一篇: 图片秀:我的寝室(快大四了,纪念一下)
下一篇: 血汗工厂当事企业富士康状告报业记者 索赔3000万
wayne92
博客等级 码龄23年 55粉丝 176原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值