python list tuple 打包 解包_python的打包与解包

python的*与**,在函数的定义与调用过程中,有着不同的作用

打包参数:

一、函数定义时,形参前加*号(如:*args):收集实参中所有的位置参数,打包成新元组并将该元组赋值给args变量

实参位置参数:实参中所有不带形参名的参数均是位置参数(如实参传递:a, b, 1)

示例:

二、函数定义时,形参前带**号(如:**kwargs):收集实参中的所有关键字参数,打包成新字典并将该字典赋值给kwargs变量

实参关键字参数:实参中所有带形参名的参数均是关键字参数(如实参传递:a = 1, b = 2)

示例:

解包参数:

一、在函数调用时,实参前加 *号(如:*list): 将列表、元组、字符串解包成独立的元素作为参数

注意:*号后必须是可迭代序列(list / tuple / str)

示例:

二、在函数调用时实参前加 **号(如:**dict): 将字典解包成独立的关键字参数(键值对)作为参数

注意:**号后必须是dict类型数据

示例:

列表与字典解包传递与不解包传递的差异:

1、列表解包与直接传递的差异:

列表解包传递后若在函数中修改了被传递进来的元素的值,实际是修改了副本(动态参数打包后新生成的元组),不会改变原列表的数据

解包传递示例:

直接将列表作为参数传递,在函数内若对接收列表的形参作了修改(修改删除元素),原始列表数据也将相应改变

直接传递列表示例:

2、字典解包与直接传递的差异

字典与列表均为可变类型,原理同列表

字典解包传递示例:

直接传递字典示例:

总结:

1、形参前加*或**号是打包,*号是以新元组形式打包实参中所有的位置参数并将新元组赋值给*号后的变量,**是以新字典形式打包实参中的所有关键字参数并将新字典赋值给**号后的变量;

2、实参前加*或**是对序列解包,*号是解包列表/元组/字符串为独立的元素作为参数,**号是解包字典键值对(每一对键值对都将解包成一个关键字参数)为关键字参数作为实参;

3、当形参中使用动态参数(参数带*或**)时,实参可解包序列传递,或需要解包序列传递参数且不确定序列中元素个数时,在形参中可使用动态参数接收;

4、解包列表或字典传递即使在函数中有修改操作,也不会修改原列表与字典的数据;

若直接传递列表或字典时函数内一旦有修改操作则会原列表或字典数据将被修改,因为列表和字典是可变类型,直接传递时实际传递的是列表与字典的内存地址,函数内可通过地址修改原列表与字典;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 成员函数 泛型函数_【一点资讯】白学这么多年 Python?连泛型函数都不会写? www.yidianzixun.com...

泛型,如果你尝过java,应该对他不陌生吧。但你可能不知道在 Python 中(3.4 ),也可以实现 简单的泛型函数。在Python中只能实现基于单个(第一个)参数的数据类型来选择具体的实现方式,官方名称 是single-dispatch。你或许听不懂&…

matlab bad apple,【bad apple】matlab制作矩阵苹果~

有屏幕的地方就有bad apple那么作为一名工科生,熟练的操♂作马桶萝卜(matlab)是一项基本技能下面开始讲解如何用matlab制作别具一格的“矩阵苹果”~实验环境matlab R2018a原版bad apple视频技术要求可以即时演算图形可以将处理后的每帧图形合并成新的视频先上代码%t…

服务器ip直接访问php怎么写,php - 如何实现用公网ip访问到服务器上的网页?

服务器系统是Windows Server 2012 R2,已经部署了IIS、PHP和MySQL,能够在云服务器上通过localhost打开php网页,(放在服务器wwwroot上的index.php)已在ISS管理器中添加网站,但编辑网站绑定时,在ip地址中填入了服务器的公…

vb6 打印选项对话框_图纸打印次数太多,不知道哪次才是最新的?用打印戳记区分效果好...

原创:就说我在开发区使用AutoCAD从事设计工作的朋友们不知道有没遇到过这种情况:图纸在反复修改打印的过程中,由于图纸内容高度相似,往往搞不清究竟哪个才是最新版本的图纸了。这种情况下,细致入微地去核对非常麻烦&am…

安卓文本编辑器php cpp,用安卓原生控件封装一个简易的富文本编辑器

最近接到项目需求:移动端原生写一个富文本编辑器。 ( ⊙ o ⊙ )从没遇到过富文本要用原生写的,然后就查阅各种资料。然后结合自己的思路:其实安卓的富文本编辑器就是一个 “容器”。那么接下来我就带给大家说一说我自定义这个富文本编…

python和nltk自然语言处理书评_Python和NLTK自然语言处理

模块1 NLTK基础知识第 1章 自然语言处理简介 31.1 为什么要学习NLP 41.2 从Python的基本知识开始 71.2.1 列表 71.2.2 自助 81.2.3 正则表达式 91.2.4 词典 111.2.5 编写函数 111.3 NLTK 131.4 试一试 181.5 本章小结 18第 2章 文本的整理和清洗 192.…

vue tab切换_iviewUITabs选项卡切换组件

概述 选项卡切换组件,常用于平级区域大块内容的的收纳和展现。源码地址:https://github.com/iview/iview/tree/2.0/src/components/tabs使用: 标签一的内容标签二的内容标签三的内容标签二的内容在源码的tabs文件下有三个文件:ind…

java biginteger 比较大小,java – 打印非常大的BigIntegers

我试图找出与Java 7 x64中的BigIntegers相关的以下问题.我试图计算一个极高功率的数字.代码如下,然后是问题描述.import java.math.BigInteger;public class main {public static void main(String[] args) {// Demo calculation; Desired calculation: BigInteger("4096&…

paypal创建订单后怎么获得id_5步创建Facebook商店(最新版教程)学习如何在Facebook上卖货...

请按照以下步骤设置Facebook商店:步骤1:转到您的Facebook页面并配置Shop页面。步骤2:设置您的商店详细信息。步骤3:配置付款。步骤4:将产品添加到您的Facebook商店。步骤5:管理您的订单。步骤6:…

php 网络图片 转本地,PHP将Base64图片转换为本地图片并保存

PHP将Base64图片转换为本地图片并保存/*** [将Base64图片转换为本地图片并保存]* param [Base64] $base64_image_content [要保存的Base64]* param [目录] $path [要保存的路径]*/function base64_image_content($base64_image_content,$path){//匹配出图片的格式if (preg_matc…

创建索引名称已由现有对象使用_Excel编程周末速成班第3课:Excel对象模型

学习Excel技术,关注微信公众号:excelperfect导语:为了帮助想要快速学会Excel VBA的朋友,特以《Excel Programming Weekend Crash Course》这本书为基础,开始整理一系列资料,在完美Excel社群上分享。一共有3…

php修改htpasswd,用来解析.htpasswd文件的PHP类

.htpasswd 文件示例:user1:{SHA}kGPaD671VNU0OU5lqLiN/h6Q6acuser2:{SHA}npMqPEX3kPQTox/ZckHDrIcQIuser3:{SHA}q1Fh2LTUjjkncp11m0M9WUH5Zrwclass Htpasswd {private $file ;private $salt AynlJ2H.74VEfI^BZElc-Vb6G0ezE9a55-Wj;private function write($pairs …

socket用起始码分割_常用条码Code128码及EAN13码的介绍

在条码打印软件中,设计条码标签时经常用到的码制是Code128码和EAN13码。因为这两种码制比较贴近我们的生活。比如:我们去超市购物,商品上贴的条码标签都是EAN13码,因为EAN13码多用于零售产品包装。而code128码多用于工厂产线&…

matlab在c盘有缓存文件夹吗,win10如何清除C盘缓存文件-win10清除C盘缓存的方法 - 河东软件园...

在电脑的使用过程中我们会发现磁盘的容量会不断减小,更多时候其他磁盘还有很多剩余空间,C盘的存储空间就已经达到极限了。其实在系统的升级和软件的下载中很多文件就会默认储存在C盘,时间久了以后,C盘不仅有软件文件,还…

php 验证码字体居中,自定义验证码图片的宽高后文本垂直水平居中[帝国cms ShowKey.php]-网站程序网...

define(EmpireCMSAdmin,1);define(EmpireCMSAPage,login);define(EmpireCMSNFPage,1);require(../class/connect.php);//绘制居中文本, 对于GD的内置字体function pc_ImageStringCenter($image,$text,$font){//字体大小$width array(1>5,6,7,8,9);$height array(1>6,8,…

python中的常量可以修改吗_深入理解Python变量与常量

变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。常量是一块只读的内存区域,常量一旦被初始化就不能被改变。…

java方法体逻辑不会写怎么办,想自己写框架?不会写Java注解可不行

用注解一时爽,一直用一直爽Java后端开发进入spring全家桶时代后,开发一个微服务提供简单的增删改查接口跟玩泥巴似的非常简单,一顿操作猛如虎,回头一看代码加了一堆注解:Controller Autowired Value,面向注…

联想拯救者y7000加内存条_短测联想拯救者Y7000,到底值不值得买?

7000块左右的笔记本电脑有什么好选择,我相信这是很多人一直纠结的问题,虽然我用过的笔记本很多,但是这个价位的用的少之又少,但随着十代酷睿标压处理器的大量铺货,联想拯救者Y7000进入了我的视线。那到底值不值得买呢&…

php适用于什么服务器,php – 找不到laravel类(适用于localhost但不适用于DO服务器)...

这是一个重复的问题 – 例如:Laravel 4 migrations – class not found但是,我已经尝试了所有解决方案(来自我能找到的每个论坛)并且无法解决这个问题.脚本我在我的本地机器上创建了一个Laravel 4项目 – 添加了一些类,控制器,视图等 – 项目运行良好.然后我将这个新…

python扫雷游戏课程设计小组任务计划与分配表_python实现扫雷游戏

本文为大家分享了python实现扫雷游戏的具体代码,供大家参考,具体内容如下本文实例借鉴mvc模式,核心数据为model,维护1个矩阵,0表无雷,1表雷,-1表已经检测过。本例使用python的tkinter做gui,由于…