栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么splatting在rhs上创建一个元组,而在lhs上创建一个列表?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么splatting在rhs上创建一个元组,而在lhs上创建一个列表?

您在RHS上获得元组的事实与splat无关。splat只会解压缩您的

map
迭代器。你解压 由你使用的元组语法的事实决定:

*whatever,

而不是列表语法:

[*whatever]

或设置语法:

{*whatever}

您可能已经获得一个列表或一组。您刚刚告诉Python创建一个元组。


在LHS上,分散的分配目标始终会产生一个列表。是否使用“元组样式”都没关系

*target, = whatever

或“列表样式”

[*target] = whatever

目标列表的语法。该语法看起来很像用于创建列表或元组的语法,但是目标列表语法是完全不同的事情。

PEP 3132中引入了您在左侧使用的语法,以支持诸如以下的用例

first, *rest = iterable

在拆包任务中,将iterable的元素按位置分配给未加星标的目标,如果有加星标的目标,则将所有多余内容填充到列表中并分配给该目标。选择一个列表而不是一个元组可以使进一步处理变得容易。由于您的示例中
只有加 星标的目标,因此所有项目都位于分配给该目标的“附加”列表中。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611761.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号