在String.format方法中使用*会做什么?

时间:2019-07-06 21:24:58

标签: python string

我不明白代码中“ *”的含义。它有什么作用,又叫什么?

numbers = [x for x in range(5)]
mystrings = "numbers:{0}, {1}, {2}, {3}".format(*numbers)
print(mystrings)

我什至不知道它叫什么(或者我已经在网上搜索了)。我正在学习如何使用String.format(),并希望从列表中添加项目,而无需手动输入所有内容。我找到了此解决方案,但没有任何解释。

这就是我要避免的事情:

mystrings = "numbers:{0},{1},{2},{3}".format(numbers[0],
                                          numbers[1],
                                          numbers[2],
                                          numbers[3]
                                          )

1 个答案:

答案 0 :(得分:0)

在这种情况下,*通常称为splat operator,它接受​​参数列表并进行扩展-在这种情况下,因为format()需要单个参数而不是列表,所以它是必需的。是的,这是

*numbers

与此完全相同(假设有4个元素的列表,但可以使用任意长度):

numbers[0], numbers[1], numbers[2], numbers[3]