【笔记】python 中的 starred expression(星号表达式)功能:参数传递;用于unpacking可迭代的变量
注意: * (starred expression)不可以单独使用
正文:
Python 星号表达式(starred expression)
*expression
的作用
1、用于参数传递
出现在函数中,*args用于将传入的可迭代参数解析出来,并存入到args中
def f(*args, **kwargs):print(args)print(kwargs)
>>> def f(a, b, c):
... print a, b, c
...
>>> f(1, 2, 3)
1 2 3
>>> f(*['a', 'b', 'c'])
a b c
>>> f(3, *[1, 2])
3 1 2
2、用于unpacking可迭代的变量
将序列中的部分内容打包至一个列表中
- example 1
python3
Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a, *b, c = range(10)
>>> a
0
>>> b
[1, 2, 3, 4, 5, 6, 7, 8]
>>> c
9
- example 2
>>> record = ('alice', 50, 1322,45, (12, 18, 2018))
>>> name, *_1, (*_2, year) = record
>>> name
'alice'
>>> _1
[50, 1322, 45]
>>> _2
[12, 18]
>>> year
2018
- example 3
>>> for a, *b in [(1,2,3,4,5), ('a', 'b', 'c', 'hehe')]:
... print(b, type(b))
...
[2, 3, 4, 5] <class 'list'>
['b', 'c', 'hehe'] <class 'list'>
- 递归求和
>>> def sum(items):
... head, *tail = items
... return head + sum(tail) if tail else head
...
>>> sum([1, 3, 5, 7, 9])
25
注意:星号表达式(*expressoin)不可单独使用
# 以下实验结果在python3.x中
>>> *a = range(5)File "<stdin>", line 1
SyntaxError: starred assignment target must be in a list or tuple
>>> *a, = range(5)
>>> a
[0, 1, 2, 3, 4]>>> a = *range(5)File "<stdin>", line 1
SyntaxError: can't use starred expression here
>>> a = *range(5),
>>> a = , *range(5)File "<stdin>", line 1a = , *range(5)^
SyntaxError: invalid syntax
3、语法参考
PEP 3132 – Extended Iterable Unpacking | peps.python.orghttps://www.python.org/dev/peps/pep-3132/PEP 448 – Additional Unpacking Generalizations | peps.python.orghttps://www.python.org/dev/peps/pep-0448/
【笔记】python 中的 starred expression(星号表达式)功能:参数传递;用于unpacking可迭代的变量相关推荐
- Python中的三目运算符(三元表达式)
Python中的三目运算符(三元表达式) 一般支持三目运算符的语言(如C语言)的语法格式一般是这样的: 判断条件(返回布尔值)?为真时的结果:为假时的结果 比如: x = x%2==1 ? x+1:x ...
- python中case的用法_如何在Python中使用TestCase实现一个断言功能
如何在Python中使用TestCase实现一个断言功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题. Python TestCase断 ...
- python模拟浏览器模块_在Python中使用mechanize模块模拟浏览器功能
知道如何快速在命令行或者python脚本中实例化一个浏览器通常是非常有用的. 每次我需要做任何关于web的自动任务时,我都使用这段python代码去模拟一个浏览器. import mechanize ...
- [转载] Python中的解析式和生成器表达式
参考链接: Python | 生成器表达式 解析式和生成器表达式 列表解析List Comprehension 语法 [返回值 for 元素 in 可迭代对象 if 条件]使用中括号[],内部是for ...
- Python中的yield关键字及表达式、生成器、生成器迭代器、生成器表达式详解
文章目录 1. yield关键字及表达式.生成器.生成器迭代器.生成器表达式 1.1 yield关键字及表达式(yield expression) 1.1.1 yield关键字 1.1.2 yield ...
- python中参数(带星号的参数)
python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...
- python中、文件最重要的功能是( )和接收数据_Python基础语法14个知识点大串讲
来源:Python数据之道 Python基础语法大串讲Python 是一门面向对象的编程语言,相信这篇文章对于初学者而言应该会有一个比较大的帮助,下面我们将 Python 中常用的基础语法和函数做了一 ...
- python中eval函数和int函数功能一样_python中eval与int的区别浅析
python中eval和int的区别是什么?下面给大家介绍一下: 1.eval()函数 eval()能够以Python表达式的方式解析并执行字符串,并将返回结果输出.eval()函数将去掉字符串的两个 ...
- python中、文件最重要的功能是( )和接收数据_170道面试题,python让你前尘毋庸
所有题目 语言特性 1.谈谈对 Python 和其他语言的区别 2.简述解释型和编译型编程语言 3.Python 的解释器种类以及相关特点? 4.说说你知道的Python3 和 Python2 之间的 ...
最新文章
- jpa 自定义sql if_常用SQL语句大全总结
- Apache Hadoop 启动报错:masternode:ssh: connect to host master port 22: Connection timed out 总结
- php no route to host,java.net.NoRouteToHostException: No route to host解决方法
- [数据结构与算法] : 栈的链式实现
- php 实现一致性哈希,PHP一致性哈希实现。。
- 英文标题大写格式化 在线网站
- php 延迟输出,PHP循环;如何打印每个结果并将其延迟一秒钟,然后再回显另一个结果?...
- 电脑更新后,设备管理器未知USB设备,并且蓝牙无法使用
- 一步快速将Smartform转成生成PDF文件
- C++ MFC与三菱PLC通讯
- 广西大学计算机学院录取名单,西南大学计算机与信息科学学院关于2021年硕士研究生拟录取名单的公示(不含推免生)...
- 二叉树期CRR权定价模型-python
- 解决“各种”软件图标显示错误问题
- CVR预估论文阅读笔记:一次性解决三大难题
- RT-Thread内核-__rt_ffs函数
- C盘系统文档迁移工具,一键解决重装,C盘爆满
- 卡内基沟通与人际关系
- 转:创业之路“一生悬命”---只有偏执狂才能生存
- SMU激活函数讲解及代码实现
- 万家杨柳青烟里:B+、B- 树的应用场景
热门文章
- 使用vue create 创建项目时的翻译
- MySQL 数据库 之 高级 SQL 语句(常用查询,正则表达式,运算符,库函数,存储过程)
- Java核心特性之反射机制
- 目前最先进的神经网络算法,神经网络算法发展
- 机器学习VS动量、反转效应,量化交易1
- Matlab调用NI-DAQmx出现“错误使用 mex XXX skipping incompatible XXX searching for -lNIDAQmx“
- 普洛斯最新中国收益基金募集资产管理规模76亿元;喜力成为2023年一级方程式合作伙伴 | 美通企业日报...
- 曲速未来 披露:由macOS NFS客户端中的缓冲区溢出引起的内核RCE
- 综合应急平台-数据库系统
- 自动驾驶/智能网联在高速公路自动驾驶货车示范应用现状