python中在列表前面加星号(*)的作用

Python列表(list)详解 Python 列表list 详细讲解,包含列表list的增删改查。append()、extend()、inset(),del、remove()、pop()、clear(),index(),count()方法详解,列表索引和切片详解 阅读详情

python 里面列表前面加星号, 例如 : *[1, 2, 3],这是什么用法?

1、先说作用:
作用是:将列表解开成几个独立的参数,传入函数。类似的运算符还有两个星号(**),是将字典解开成独立的元素作为形参。

例如:add(a,b)函数需要输入两个数,在主函数中list =  [1, 2]    c = add(*list),此处*list就表示的是将list中的两个数拆开之后分别输入,等价于c = add(list[0], list[1])。

这样做的目的是为了简化代码

2、再放代码:

def add(a, b):
    return a + b
 
 
data = [4, 3]
print(add(*data))
print(add(data[0], data[1]))
# 等价于 print add(4, 3)
data = {'a': 4, 'b': 3}  # 当将字典传入作为形参时。。。形参的名字和字典的键的名字要相同
print(add(**data))  # 这里可以两个*,但后续直接对字典操作则出错
# 等价于 print add(4, 3)

-------------------------------------------------------------------

def add(a, b, c):
    print(a,b,c)
    

c = {'a': 1, 'b': 2, 'c': 3}
add(**c) # 1 2 3
c = {1: 'a', 2: 'b', 3: 'c'}
add(**c) # TypeError: keywords must be strings
c = {1: 'a', 2: 'b', 3: 'c'}
add(*c) # 1 2 3
-------------------------------------------------------------------

a = [1, 2, 3]
b = (1, 2, 3)
c = {1: "a", 2: "b", 3: "c"}
d = {v:k for k,v in c.items()} # d = {1: 'a', 2: 'b', 3: 'c'}
print(a, "====", *a) # [1, 2, 3] ==== 1 2 3
print(b, "====", *b) # (1, 2, 3) ==== 1 2 3
print(c, "====", *c) # {1: 'a', 2: 'b', 3: 'c'} ==== 1 2 3 # 打印的是键
print(d, "====", *d) # {'a': 1, 'b': 2, 'c': 3} ==== a b c # 打印的是键


其中的几个注意点:

1、当将字典传入作为形参时。。。形参的名字和字典的键的名字要相同,如图,字典的键为a,b,所以形参的名字也是a,b

2、只有在作为实参输入时,**data是正确的。如果直接对一个字典做**dict,python会报错。

3、*dict得到的是键而不是值,如代码中的*c

3、对向量操作
不光是列表、元组、字典,由numpy生成的向量也可以拆分;

4、用途
了解过函数中*args和**kwargs的人应该知道,这两个形参都接收若干个参数,通常我们将其称为参数组;

*args:接收若干个位置参数,转换成元组tuple形式

**kwargs:接收若干个关键字参数,转换成字典dict形式

ps:需要注意的是位置参数*args,一定要在关键字参数**kwargs前

例子:

def output(*args):
    print(type(args))
    for i in args:
        print(i)
 
 
list = [1, 2, 3]
output(list)
output(*list)
 
输出:
<class 'tuple'>
[1, 2, 3]
<class 'tuple'>
1
2
3


不难发现,如果不加*,add函数将整个列表当做一个元素使用,也就是add(([1,2,4,5],))。而带有*号的参数,此时相当于add((1, 2, 4, 5));

5、*号也可以作用于二维的列表
显然也是将列表进行拆分,结果是两个一维列表;如下代码所示

# 作用于二维列表
array = [[1, 2, 3],
         [4, 5, 6]
         ]
print(array)
print(*array)
print(type(array))
print(type(*array))
 
输出:
[[1, 2, 3], [4, 5, 6]]
[1, 2, 3] [4, 5, 6]
<class 'list'>
 
print(type(*array))
TypeError: type() takes 1 or 3 arguments


如图,print(type(*array))会报错,这是因为type的输入不是一个导致的,这也说明,*号运算符将二维列表拆成两个列表

这么一看,这个带*变量的作用,就仿佛是把列表解开一层似的,而python中有一个zip函数,功能与之相反。

zip是将一个或多个可迭代对象进行包装压缩,返回将结果是列表;

通俗的说:zip()压缩可迭代对象,*号解压可迭代对象;

最后需要注意的是:

可迭代对象才可以使用*号拆分;

带*号变量严格来说并不是一个变量,而更应该称为参数,它是不能赋值给其他变量的,但可以作为参数传递;

Python列表和字典前面为什么要加星号(**)? 列表前面加星号作用是将列表解开(unpacke)成多个独立的参数,传入函数。单星号*和双星号**除了作为“乘”和“幂”的数值运算符外,还在列表、元组、字典的操作中有着重要作用。是将字典解开成为独立的元素作为形参。字典前面加两个星号, 阅读详情

相关推荐

ython 列表(List)的常用操作方法详解

操作方法创建列表[]或list()访问元素索引负索引切片修改元素索引赋值切片赋值遍历列表for循环、添加元素append()insert()extend()删除元素pop()remove()delclear()查找元素index()in操作符排序sort()sorted()reverse()Python 列表功能强大且易用,掌握这些操作可以大幅提高开发效率!💡🚀。

m0_62599305的博客 1064

Python 中的 *list

python *list

orz_include的博客 4676

Python中的List

List (列表)是 Python 内置的一种数据类型。它是一种有序的集合,可以随时添加和删除其中的元素。那为什么要有 List (列表)呢?我们用一个例子来说明。现在有一个团队要出去玩,要先报名。如果用我们之前学过的知识,那么就是用一个字符串变量把他们都记录起来。但是这样太麻烦了,而且也不美观。在编程中,一定要学会偷懒,避免「重复性工作」。如果有一百个成员,那么你及时是复制粘贴,也会把你写烦。这时候就可以使用列表了。就这样,一行代码就可以存放 N 多个名字了。

热情、奔放、快乐编程! 497

【Python】序列解包/列表前加星号*list

序列解包功能十分强大,应用极其广泛。如果对其不了解,初看一下,还真的会一脸懵逼。希望本文的案例学习对您有所帮助!

算法与编程之美 1914

从零开始VCS+Verdi 安装过程

从零开始VCS+Verdi 安装及破解过程 主要参考:VCS+Verdi 安装及破解过程(CentOS7)-----FPGA开发 1. 安装文件结构 –vcs-mx_vL-2016.06 –verdi_vL-2016.06-1 –scl_v11.9 #此程序统一管理license等破解文件 –SynopsysInstaller.rar #此程序用于安装以上3个程序 –sc...

Ztrans的博客 2万+

unity 在透明物体上投射阴影

unity版本:2019.4.16 创建一个shader,代码如下: Shader "ChuckLee/ARShadow" { Properties { _ShadowColor("Shadow Color", Color) = (0.1, 0.1, 0.1, 0.53) } SubShader { Tags{ "RenderType" = "Transparent" "Queue" = "Geometry+1" } Blend SrcAlpha OneMinusSrcAlph

Abel02的博客 2953

Python中星号(*)的使用

Python中,单星号 * 和双星号 ** 除了作为“乘”和“乘方”的数值运算符外,还在列表、元组、字典的操作中有看到,下面对其进行解释: 单星号 * 单星号 * 用于对列表list或元组tuple中的元素进行取出(unpacke)。例如,np.arange函数需要独立的开始和停止参数: import numpy as np l = [2, 6] # 或者 l = (2, 6) print(np.arange(*l)) # 输出: [2 3 4 5] 双星号 ** 双星号 ** 可将字典里的“

qq_34525916的博客 6208

第五节 Amesim《直动型溢流阀HCD建模》HCD5 学习资料

利用HCD原则创建直动型溢流阀的界面。这可能包括图形化表示直动型溢流阀的工作原理、操作方式和调节方法。这样的界面应当直观且易于理解,使用户能够轻松了解阀门的功能和使用方法。

m0_58052642的博客 1330

python 里面列表前面加星号的意思

python 里面列表前面加星号, add([1,5])这是什么用法? 例如 from operator import add add([1,5]) 6 作用是将列表解开成两个独立的参数,传入函数,还有类似的有两个星号,是将字典解开成独立的元素作为形参。 # -*- coding:utf-8 -*- def add(a, b): return a+b data = [4,3] pr...

hellenlee22的博客 6888

stm32h743的hrtim使用生成pwm波

HRTIM(High-Resolution Timer)是一种高精度定时器,其时钟频率可直接与CPU主频同步,达到480MHz。相比之下,其他传统定时器需挂载在APB总线上,受总线频率限制,最高仅支持240MHz。这种直接时钟同步机制显著提升了定时器的分辨率和精度。

d13211322的博客 1614

2、微软 Power Automate 入门指南

本文是一篇关于微软 Power Automate 的入门指南,详细介绍了 Power Automate 的基本概念、相关术语、登录方式以及如何创建一个简单的自动化流。文章还探讨了 Power Automate 在业务流程中的应用场景和优势,并展望了其高级功能和未来发展。适合希望快速入门 Power Automate 并提升业务自动化效率的读者。

corn8的博客 442

Python:列表和字典前面加星号(**)

Python 中,单星号(*)和双星号(**)除了作为“乘”和“幂”的数值运算符外,还在列表、元组、字典的操作中有着重要作用。 小例子 import numpy as np _list = [1,2,3,6] _tuple = (1,2,4,5) _dict = {'a':1,'b':5,'c':6} _arange = np.arange(3,8) print(_list,'==================',*_list) print(_tuple,'==================',*

北国觅梦 5860

自抗扰控制(ADRC)理论与工程实践:8.2 模糊ADRC、神经网络ADRC等智能融合变体

智能融合ADRC变体概述 自抗扰控制(ADRC)与智能控制方法(如模糊逻辑、神经网络)的融合,旨在突破传统ADRC在非线性、时变系统中的应用局限。智能融合ADRC主要通过以下方式实现性能提升: 模糊ADRC 参数自整定:利用模糊推理在线调节ADRC带宽参数,实现自适应控制。 非线性反馈:用模糊控制器替代线性PD,灵活设计非线性控制策略。 优势:融入专家经验,无需精确模型;局限:依赖规则库设计,稳定性分析困难。 神经网络ADRC 增强ESO:用神经网络学习扰动动态,提高估计精度。

技术工作者 228

python中变量前面加星号*

python中变量e前面加星号,即*elist或tuple前面加星号字典前面加星号 list或tuple前面加星号 列表或元组前面加星号作用是将列表解开成两个独立的参数,传入函数; def add(x,y): return x+y b = [1,4] e = (2,3) add(*e) add(*b) >>> 5 >>> 5 字典前面加星号 字典前面加两个星号,是将字典的值解开成独立的元素作为形参。 def add(x,y): return x+y d= {

Michael_Well的博客 1万+

软件设计师考试下午题代码部分详解:23种设计模式全面解析

软件设计师考试的下午题通常会考察设计模式的应用,这部分内容既是重点也是难点。本文将系统地介绍考试中常见的23种设计模式,通过详细代码示例和通俗易懂的讲解,帮助考生掌握这些核心知识点,提高应试能力。概念:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。适用场景:系统要独立于产品的创建、组合和表示时;系统要由多个产品系列中的一个来配置时。@Override@Override@Override@Override// 产品族A@Override。

4万+

【2026最新版】python点云处理算法汇总(长期更新版)

python点云处理算法整理。博客长期更新,最近一次更新时间为:2026年10月4日。

点云侠的博客 42万+

python列表前加星号是什么_python 里面列表前面加星号的意思

python 里面列表前面加星号, add(*[1,5])这是什么用法?例如:from operator import addadd(*[1,5])6作用是将列表解开成两个独立的参数,传入函数,还有类似的有两个星号,是将字典解开成独立的元素作为形参。# -*- coding:utf-8 -*-def add(a, b):return a+bdata = [4,3]print add(*data)#...

weixin_39874379的博客 966

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

为什么Python列表和字典前面会加星号(**)?

嗨喽~大家好呀,这里是魔王呐 ❤ ~!Python 中,单星号*和双星号**除了作为“乘”和“幂”的数值运算符外,还在列表、元组、字典的操作中有着重要作用。

python56123的博客 1712

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

计算机控制技术及应用

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

Python中单星号(*)和双星号(*)的区别

一、单星号(*)和双星号(**)概念     1、什么是星号变量     最初,星号变量是用在函数的参数传递上的,在下面的实例中,单个星号代表这个位置接收任意多个非关键字参数,在函数的*b位置上将其转化成元组,而双星号代表这个位置接收任意多个关键字参数,在**b位置上将其转化成字典: ∗*∗  该位置接受任意多个非关键字(non-keyword)参数,在函数中将其转化为元组(1,2,3,4) ∗...

qq_43468807的博客 1352

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Python 中星号(*)的用法

星号​​*​​ 往往被称为乘法运算符,是所有程序中最为常用的运算符号之一,在Python 中,星号还有很多隐藏的强大功能。本文将用最容易理解的例子来解释星号*的 五个使用场景,从初级用法到高阶用法。

6296

Python星号表达式(*)用法详解

目录 一、作为函数的可变参数标志以及参数解包 二、赋值语句中作为可变变量标志 三、在除函数参数语境外的其他语境下对可迭代对象进行解包 星号在python中的用法主要可分为三类:一是作为函数的可变参数标志以及在函数参数的语境下对可迭代对象进行解包并进行参数传递(参数解包),二是作为赋值语句中的可变变量标志,三是在非函数参数的其他特定的语境中直接对可迭代对象进行解包操作...

S_o_l_o_n的博客 1万+

Python 星号(*)操作符的用法

在定义一个方法的时候,星号的意思就是: 收集其余位置的参数,如果不提供任何收集的元素给星号,就是一个空元组。下面看一下例子:def prints(*arg): print arg; prints (1,2,3,4,5,6,7)打印的结果是一个元组: (1,2,3,4,5,6,7) , 也就是说该参数(arg) 将传进来的所有参数放在了一个元组中。将方法变形看一看这个方法的好处:def pri

yzj99848873的专栏 1万+

Python列表和字典前面为什么会加星号(**)?

嗨喽,大家好呀~这里是爱看美女的茜茜呐python 中,单星号*和双星号**除了作为“乘”和“幂”的数值运算符外,还在列表、元组、字典的操作中有着重要作用。

m0_72282564的博客 1457

Python列表和字典前面为什么要加星号( )?_python一个 代表列表

Python 中,单星号*和双星号**除了作为“乘”和“幂”的数值运算符外,还在列表、元组、字典的操作中有着重要作用。

m0_60721649的博客 682
上一篇: 找出不相邻数字最大和(递归vs动态规划)
下一篇: 数组中是否存在几个数的相加结果为9(递归vs动态规划)
vegeChickenNotes
博客等级 码龄4年 1粉丝 4原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值