You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中*运算符解包列表疑问:print输出为何无逗号?

Python中*运算符的解包原理与print输出无逗号的原因

关于print(*["John", 20])输出无逗号的原因

*在这里的作用是可迭代对象解包——把列表["John", 20]拆成两个独立的位置参数,等价于执行print("John", 20)。而Python的print函数默认用空格作为参数之间的分隔符(sep=" "是默认值),所以输出的两个值会用空格隔开,看不到逗号。如果想要输出带逗号的结果,只需要显式指定分隔符:

print(*["John", 20], sep=", ")

执行后就会输出John, 20。

关于str.format(*列表)的原理

str.format()方法本身需要接收多个位置参数来匹配格式字符串里的{0}、{1}这类占位符。用*["John", 20]就是把列表里的元素逐个传递给format方法,完全等价于直接写format("John", 20)。你看到的最终输出里的逗号,是格式字符串"My name is {0}, I am {1} old"里自带的逗号,和参数传递的方式无关——不管是直接传两个参数,还是用*解包列表传参,format都会把参数对应填入占位符,格式字符串里的标点符号会原样保留。

内容的提问来源于stack exchange,提问作者Pobudi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 00:15:58