【记录】Python3|将元组/列表/集合或字典解析成多个参数传入函数,以及定义可变参数函数
【说人话版】
将元组/列表/集合或字典直接作为多个函数参数传入,只需要添加*或**即可。
样例如下。
在Python中,将元组、列表、集合或字典作为多个函数参数传入是一种非常方便的技巧,可以帮助我们在编写代码时更加简洁高效。使用*或**语法可以让Python将这些数据结构解析为多个参数,以便我们在函数调用时更方便地使用它们。
这种技巧在很多场景中都非常有用。例如,我们可以使用它来将一个列表中的所有元素传递给一个函数,或者将一个字典中的所有键-值对作为参数传递给一个函数。下面是一些例子:
元组/列表/集合
添加*。如:
# 使用 * 将元组/列表/集合解析成多个参数传入函数
def my_func(a, b, c):
print(f"a = {a}, b = {b}, c = {c}")
my_tuple = (1, 2, 3)
my_func(*my_tuple) # 输出:a = 1, b = 2, c = 3
# 使用 * 将列表解析成多个参数传入函数
my_list = [4, 5, 6]
my_func(*my_list) # 输出:a = 4, b = 5, c = 6
# 使用 * 将集合解析成多个参数传入函数
my_set = {7, 8, 9}
my_func(*my_set) # 输出:a = 7, b = 8, c = 9
运行结果:

【说人话版】
如上代码所示,这个函数需要3个参数,但我只传入了一个元组/列表/集合变量,不需要写成my_func(my_turple[0], my_turple[1], my_turple[2])。方便。
上面的代码演示了如何使用将不同的数据结构解析成多个参数传递给函数。这种方法非常方便,可以让我们在不改变函数参数列表的情况下,将多个参数传递给函数。
需要注意的是,使用时,传入的参数必须是可迭代对象,如元组、列表、集合等。另外,需要保证传入的参数个数与函数参数个数相同,否则会出现TypeError错误。在这种情况下,可以使用可变参数函数来接收任意数量的参数。
字典
添加**,可以做到一一映射。
def test_func(a, b, c):
print(a)
print(b)
print(c)
test_dict={
'a':123,
'b':456,
'c':789
}
test_func(**test_dict)
运行结果:

另,如果添加*,就只解析字典的键值。运行结果:

可变参数
一样的,*表示元组,**表示字典。
定义可变参数的函数的时候,**字典参数得放在*元组参数后面,且放在参数列表最后。
如:
def test_func(a, *b, **c):
print(a)
print(b)
print(c)
test_dict={
'a':123,
'b':456,
'c':789
}
test_func(12, 34, 56, 78, c=1, b=2)
运行结果:

可以看到,c和b在结尾被赋值,但其实不影响变量,而是都作为c被打印出来。
而除了第一个参数,其他没有xxx=xxx形式的都被识别为b打印了出来。
【记录】Python3|将元组/列表/集合或字典解析成多个参数传入函数,以及定义可变参数函数的更多相关文章
- 列表 list 容器类型数据(str字符串, list列表, tuple元组, set集合, dict字典)--->元组 tuple-->字符串 str
# ### 列表 list 容器类型数据(str字符串, list列表, tuple元组, set集合, dict字典) # (1)定义一个列表 listvar = [] print(listvar, ...
- Python 基础补充(一) 列表、元组、集合、字典的区别和相互转换
一.列表.元组.集合.字典的区别 列表 元组 集合 字典 英文 list tuple set dict 可否读写 读写 只读 读写 读写 可否重复 是 是 否 是 存储方式 值 值 键(不能重复) ...
- python 数据类型: 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary
#python中标准数据类型 字符串String 列表List 元组Tuple 集合Set 字典Dictionary 铭记:变量无类型,对象有类型 #单个变量赋值 countn00 = '; #整数 ...
- 5. Python数据类型之元组、集合、字典
元组(tuple) 元组创建很简单,只需要在小括号中添加元素,并使用逗号隔开即可.与列表不同的是,元组的元素不能修改.如下代码所示: tup1 = () tup2 = (1) tup3 = (1,) ...
- Python中列表、元组、集合、字典
Python 列表(List) 列表是最常用的Python数据类型: 列表中的数据项不需要具有相同的类型: 列表也叫做数组,定义时使用[]: 通过下标访问列表中的元素,下标从 0 开始计数 列表的增 ...
- python3_列表、元组、集合、字典
列表list #列表的基本操作 >>> a=[] #创建空列表 >>> a = [0,1,2,3,4,5] #创建列表并初始化,列表是[]包含由逗号分隔的多个元素组 ...
- 06_Python的数据类型3元组,集合和字典_Python编程之路
上一节跟大家讲了Python的列表,当然不是完整的讲完,后续我们还会提到,这一节我们还是来讲Python的数据类型 首先要讲到的就是元组 元组其实拥有列表的一些特性,可以存储不同类型的值,但在某些方面 ...
- Python的数据类型3元组,集合和字典
首先要讲到的就是元组 元组其实拥有列表的一些特性,可以存储不同类型的值,但在某些方面元组又比不上列表 定义一个元组,你可以不用加‘ [ ] ’,你只需用逗号隔开即可 例如 1 2 3 4 5 6 7 ...
- 深浅拷贝 集合(定义,方法) 函数(定义,参数,return,作用域) 初识
深浅拷贝 在python中浅拷贝 a=[1,2,3,4,]b=a.copy()b[0]='3333'print(a) #[1, 2, 3, 4] 浅拷贝一层并不会对a造成变化print(b) #[33 ...
- Python3基础知识之元组、集合、字典
1.元组 元组特点元组是不可变的两个元组可以做加法,不能做减法 元组的方法 >>> S('a', 'b', 'c', 'd', 'e')>>> S=('a','b' ...
随机推荐
- 同事PPT又拿奖了?偷偷用这AI工具,3步做出老板狂赞的年度报告
大家好,我是六哥,今天为大家分享一款PPT辅助神器,年底汇报必备神器!就是Napkin AI ! 这是一款超级酷的工具,它能把你写的文字一秒钟转化为各种炫酷的视觉效果,比如图表.流程图.信息图啥的.如 ...
- 饥荒联机版 mod
Extra Equip Slots Extra Equip Slots 额外装备槽:护甲.背包.护符各用各的插槽 Wormhole Marks [DST] Wormhole Marks DST] 相通 ...
- CentOS7安装部署ClickHouse(单机版&&集群部署)
1.1 什么是ClickHouse ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报 ...
- idea中启动web、jsp项目
1. idea打开项目 选择要打开的项目的根目录 2. 项目配置 配置jdk modules配置 添加web 添加依赖 删除爆红的依赖 添加依赖目录或者jar 配置web.xml 配置lib 如果没有 ...
- 试试使用 Vitest 进行测试,确实可以减少bug
vitest的简单介绍 Vitest 是一个基于 Vite 的单元测试框架,专为现代前端项目设计. 它结合了 Vite 的高性能和 Jest 的易用性, 提供了开箱即用的 TypeScript.ESM ...
- 数据库离程序员有多远 - cnblogs救园行动感想
这两周,我参与了博客园的"2024救园行动",成了终身会员.说实话,当初报名的时候,我心里还挺兴奋的,想着这下能和不少老朋友在这个社区里再次相聚.毕竟,在数据库行业摸爬滚打了这么多 ...
- 超详细移动端侧AI口罩识别实现与部署(含源码)
开发环境 数据标注:label studio :https://labelstud.io/ 模型训练:tensorflow 附完整的训练源码和数据 部署开发:Android studio + tens ...
- Oracle操作审计
因为信安的要求,要对Oracle加审计.看了一下,原来是有开的,类型为DB: SQL> show parameter audit; NAME TYPE VALUE --------------- ...
- 密码编码学与网络安全 原理与实践(第七版)William Stallings---读书笔记(1.1-1.5)
密码编码学与网络安全 原理与实践(第七版)William Stallings---读书笔记 第一部分 概览 第1章 计算机与网络安全概念 密码算法与协议又可分为4个主要领域: 对称加密 加密任意大小的 ...
- Cython二进制逆向系列(三)运算符
Cython二进制逆向系列(三)运算符 在开始前,先给出本文用到的py源代码 def test1(x, y): # 数学运算符 a = x + y b = x - y c = x * y d = x ...