QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

VIP至尊会员

Rank: 15Rank: 15Rank: 15

积分
316
查看: 77|回复: 7

[已解决]关于python中*号的问题

[复制链接]
最佳答案
5 
累计签到:124 天
连续签到:5 天
御笔剑客 发表于 4 天前 777 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
比如:
i,*j=range(3)
这里面的收集参数*号不是会把 1 和2 打包成元组吗,为什么j是列表呢?
最佳答案
4 天前
本帖最后由 orino 于 2018-1-14 17:00 编辑

不好意思,我看错你的题目没理解你的问题。我后来查了一下,你这样的用法其实是非常少见的。*号运算符一般是用在函数的参数调用里,可以作为可变参数,也可以用来解包列表和元组。所以*号是只能用在列表和元组里面的,你这里的完整表现形式应该是(i, *j)=range(3), 我直接表示为(i, *j)=[0,1,2]好了,实际这里调用的作用是用来解包列表,它的形式其实和*j,=[1,2]是一个道理,也就是(*j,)=[1,2],所以解包完自然还是列表。解包完后实际产生了一个列表的复制。这时python3 PEP3132新定义的。

参考链接
https://www.python.org/dev/peps/pep-3132/
https://stackoverflow.com/questions/43190992/understanding-x-lst
楼层
跳转到指定楼层
最佳答案
31 
累计签到:28 天
连续签到:10 天
orino 发表于 4 天前 | 显示全部楼层
由于有*号,所以j把1,2打包在一起了,而原来range(3)就是【0,1,2】的列表,i被赋值0,那j自然是被赋值[1.2]
最佳答案
5 
累计签到:124 天
连续签到:5 天
御笔剑客  楼主| 发表于 4 天前 | 显示全部楼层
orino 发表于 2018-1-14 14:17
由于有*号,所以j把1,2打包在一起了,而原来range(3)就是【0,1,2】的列表,i被赋值0,那j自然是被赋值[1.2]

*不是打包成元组吗?
最佳答案
31 
累计签到:28 天
连续签到:10 天
orino 发表于 4 天前 | 显示全部楼层
额,其实不用纠结这个,因为原来的range(3)是列表,打包好后实际是([1,2]),也就是[1,2]
最佳答案
5 
累计签到:124 天
连续签到:5 天
御笔剑客  楼主| 发表于 4 天前 | 显示全部楼层
orino 发表于 2018-1-14 14:37
额,其实不用纠结这个,因为原来的range(3)是列表,打包好后实际是([1,2]),也就是[1,2]

我就是问的这个,*号收集参数是打包成元组,为什么这里是列表
最佳答案
31 
累计签到:28 天
连续签到:10 天
orino 发表于 4 天前 | 显示全部楼层
结果是([1,2]),但输出的时候直接会是[1,2], 就像print((1)),最后会输出1一样,你可以试一下print(([1,2]))
最佳答案
5 
累计签到:124 天
连续签到:5 天
御笔剑客  楼主| 发表于 4 天前 | 显示全部楼层
orino 发表于 2018-1-14 14:54
结果是([1,2]),但输出的时候直接会是[1,2], 就像print((1)),最后会输出1一样,你可以试一下print(([1,2]))

这是列表,我问的是,*号原本的作用是打包成元组,这里为什么变成了list类型,而不是tuple类型
最佳答案
31 
累计签到:28 天
连续签到:10 天
orino 发表于 4 天前 | 显示全部楼层    本楼为最佳答案   
本帖最后由 orino 于 2018-1-14 17:00 编辑

不好意思,我看错你的题目没理解你的问题。我后来查了一下,你这样的用法其实是非常少见的。*号运算符一般是用在函数的参数调用里,可以作为可变参数,也可以用来解包列表和元组。所以*号是只能用在列表和元组里面的,你这里的完整表现形式应该是(i, *j)=range(3), 我直接表示为(i, *j)=[0,1,2]好了,实际这里调用的作用是用来解包列表,它的形式其实和*j,=[1,2]是一个道理,也就是(*j,)=[1,2],所以解包完自然还是列表。解包完后实际产生了一个列表的复制。这时python3 PEP3132新定义的。

参考链接
https://www.python.org/dev/peps/pep-3132/
https://stackoverflow.com/questions/43190992/understanding-x-lst

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /2 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2018-1-18 15:50

快速回复 返回顶部 返回列表