假设line
为:"Chicago Sun 01:52"
。*a, b, c = line.split()
是做什么的?尤其是星号的意义是什么?
编辑:测试后,似乎"Chicago"
,"Sun"
和"01:52"
都存储在a
,b
和c
中。星号似乎导致"Chicago"
被存储为a作为列表的第一个元素。因此,我们有a = ["Chicago"]
,b = "Sun"
和c = "01:52"
。在这种情况下,谁能指出星号运算符的功能?
最佳答案
通过空格分隔该文本将为您提供:
In [743]: line.split()
Out[743]: ['Chicago', 'Sun', '01:52']
现在,这是一个3个元素
list
。分配将采用输出的最后两个元素,并将它们分别分配给b
和c
。然后,*
或splat运算符会将列表的其余部分传递给a
,因此a
是元素列表。在这种情况下,a
是一个单元素列表。In [744]: *a, b, c = line.split()
In [745]: a
Out[745]: ['Chicago']
In [746]: b
Out[746]: 'Sun'
In [747]: c
Out[747]: '01:52'
请查看PEP 3132和Where are python's splat operators * and ** valid?以获取有关splat运算符,它们如何工作以及在何处适用的更多信息。