假设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"
假设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和Python 的 splat 运算符 * 和 ** 在哪里有效?有关 splat 运算符、它们如何工作以及它们适用于何处的更多信息。