【说人话版】
将元组/列表/集合或字典直接作为多个函数参数传入,只需要添加***即可。
样例如下。

在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|将元组/列表/集合或字典解析成多个参数传入函数,以及定义可变参数函数的更多相关文章

  1. 列表 list 容器类型数据(str字符串, list列表, tuple元组, set集合, dict字典)--->元组 tuple-->字符串 str

    # ### 列表 list 容器类型数据(str字符串, list列表, tuple元组, set集合, dict字典) # (1)定义一个列表 listvar = [] print(listvar, ...

  2. Python 基础补充(一) 列表、元组、集合、字典的区别和相互转换

    一.列表.元组.集合.字典的区别   列表 元组 集合 字典 英文 list tuple set dict 可否读写 读写 只读 读写 读写 可否重复 是 是 否 是 存储方式 值 值 键(不能重复) ...

  3. python 数据类型: 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary

    #python中标准数据类型 字符串String 列表List 元组Tuple 集合Set 字典Dictionary 铭记:变量无类型,对象有类型 #单个变量赋值 countn00 = '; #整数 ...

  4. 5. Python数据类型之元组、集合、字典

    元组(tuple) 元组创建很简单,只需要在小括号中添加元素,并使用逗号隔开即可.与列表不同的是,元组的元素不能修改.如下代码所示: tup1 = () tup2 = (1) tup3 = (1,) ...

  5. Python中列表、元组、集合、字典

    Python 列表(List) 列表是最常用的Python数据类型: 列表中的数据项不需要具有相同的类型: 列表也叫做数组,定义时使用[]: 通过下标访问列表中的元素,下标从 0  开始计数 列表的增 ...

  6. python3_列表、元组、集合、字典

    列表list #列表的基本操作 >>> a=[] #创建空列表 >>> a = [0,1,2,3,4,5] #创建列表并初始化,列表是[]包含由逗号分隔的多个元素组 ...

  7. 06_Python的数据类型3元组,集合和字典_Python编程之路

    上一节跟大家讲了Python的列表,当然不是完整的讲完,后续我们还会提到,这一节我们还是来讲Python的数据类型 首先要讲到的就是元组 元组其实拥有列表的一些特性,可以存储不同类型的值,但在某些方面 ...

  8. Python的数据类型3元组,集合和字典

    首先要讲到的就是元组 元组其实拥有列表的一些特性,可以存储不同类型的值,但在某些方面元组又比不上列表 定义一个元组,你可以不用加‘ [ ] ’,你只需用逗号隔开即可 例如 1 2 3 4 5 6 7 ...

  9. 深浅拷贝 集合(定义,方法) 函数(定义,参数,return,作用域) 初识

    深浅拷贝 在python中浅拷贝 a=[1,2,3,4,]b=a.copy()b[0]='3333'print(a) #[1, 2, 3, 4] 浅拷贝一层并不会对a造成变化print(b) #[33 ...

  10. Python3基础知识之元组、集合、字典

    1.元组 元组特点元组是不可变的两个元组可以做加法,不能做减法 元组的方法 >>> S('a', 'b', 'c', 'd', 'e')>>> S=('a','b' ...

随机推荐

  1. DevExpress MVVM Framework. Interaction of ViewModels. Messenger

    学习记录: 学习地址:https://community.devexpress.com/blogs/wpf/archive/2013/12/13/devexpress-mvvm-framework-i ...

  2. PKUWC2025 游记

    哈哈哈哈哈,我糖完了,哈哈哈哈哈. Day \(-998244353\) 被波波抓到机房充军集训去了,听到了很多新奇的算法,然后拼尽全力仍难以 \(AC\)--然后被各种巨佬疯狂单调队列. Day \ ...

  3. 奥特曼框架autMan对接微信(千寻、西瓜)框架的详细教程

    教程只写常用的两:西瓜.千寻,都运行在windows平台上. 1.千寻对接 文章底部下载千寻微信框架 解压至win电脑 电脑安装微信3.6.0.18并关闭自动更新 运行千寻微信框架 5.千寻框架设置 ...

  4. Joe主题 更换评论框样式,填写QQ自动获取昵称邮箱

    前言: 由于为了美观感去除了画图模式,至于怎么加上画图模式会在文章最后给出详细教程. 同时也去除了填写网址选项,这个暂时无添加教程,关键没有合适的添加位子. 话不多说,直接开始教程! 下载文件包,解压 ...

  5. JavaUtils - [04] 代码生成器(新)

    题记部分 001 || 引入依赖 <!-- Code Generator --> <dependency> <groupId>com.baomidou</gr ...

  6. 【渗透测试】 Vulnhub JANGOW: 1.0.1

    渗透环境 攻击机:   IP: 192.168.149.128(Kali) 靶机:     IP:192.168.149.129 靶机下载地址:https://www.vulnhub.com/entr ...

  7. Scala Map集合

    package com.wyh.day01 object ScalaMap { def main(args: Array[String]): Unit = { /** * 不可变Map * */ // ...

  8. 如何用Forest方便快捷地在SpringBoot项目中对接DeepSeek

    ​ 一. 环境要求 JDK 8 / 17 SpringBoot 2.x / 3.x Forest 1.6.4+ Fastjson2 依赖配置 除了 SpringBoot 和 Lombok 等基础框架之 ...

  9. ocr识别过程中报错 tesseract is not installed

    这个问题无论在初始编译时或者在后来坏境变更调试时都会遇到的问题. 解决:问题原因是源码中的默认路径位置与文件位置不同,需要更改一下

  10. Ollama——大语言模型本地部署的极速利器

    1.概述 Ollama 是一款开源跨平台大模型工具,主要用于在本地便捷部署和运行大型语言模型(LLM),核心目标是降低用户使用大模型的门槛,同时保障数据隐私.核心功能与特点如下: (1)本地部署,隐私 ...