Python中*号的非乘法用法:解析.format()参数中的*作用
Python中.format()参数前*号的作用解析
在你给出的代码里,format()方法参数前的*是Python的可迭代对象解包操作符,核心作用就是把列表、元组这类可迭代对象里的元素,拆成独立的位置参数传递给方法。
举代码里的例子具体说明:
- 对于
format_row.format("", *dota_teams):dota_teams是一个包含4个元素的列表,*dota_teams会把这个列表直接拆成4个单独的参数,等价于手动写format_row.format("", "Liquid", "Virtus.pro", "PSG.LGD", "Team Secret")。这刚好匹配format_row里的5个格式化占位符(因为len(dota_teams)+1=5),实现表头的对齐输出。 - 循环里的
format_row.format(team, *row)同理:
每个row是data里的子列表(比如第一个row是[1,2,1,'x']),*row会把它拆成4个独立参数,加上前面的team参数,刚好填满format_row的5个占位符,实现每一行队伍数据的对齐输出。
这种用法不止局限于format()方法,Python里任何函数/方法都可以用*来解包可迭代对象作为位置参数,能避免手动逐个列举元素的繁琐,让代码更简洁灵活。
内容的提问来源于stack exchange,提问作者Armagedox
相关产品推荐
相关产品推荐

