Python字符串.format(*variable)

Zen*_*tii 3 python

我正在读一本书来阅读,它涵盖了下面的例子.

somelist = list(SPAM)
parts = somelist[0], somelist[-1], somelist[1:3]
'first={0}, last={1}, middle={2}'.format(*parts)
Run Code Online (Sandbox Code Playgroud)

除了在最后一行末尾使用的星星之外,一切看起来都很清楚.这本书没有解释这个用法,我讨厌在没有完全理解的情况下继续前进.

非常感谢您的帮助.

Gar*_*tty 8

*运营商,通常被称为星或图示操作,解压可迭代到函数的参数,所以在这种情况下,它等同于:

'first={0}, last={1}, middle={2}'.format(parts[0], parts[1], parts[2])
Run Code Online (Sandbox Code Playgroud)

python文档有更多信息.


Cat*_*lus 5

它是解包(有点)运算符的参数.

args = [1, 2, 3]
fun(*args)
Run Code Online (Sandbox Code Playgroud)

是相同的

fun(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

(对于一些可赎回的fun).

函数定义中也有星号,这意味着"所有其他位置参数":

def fun(a, b, *args):
    print('a =', a)
    print('b =', b)
    print('args =', args)

fun(1, 2, 3, 4) # a = 1, b = 2, args = [3, 4]
Run Code Online (Sandbox Code Playgroud)