*a, b, c = line.split() 中的星号有什么作用?
What does the asterisk do in *a, b, c = line.split()?
假设 line
是:"Chicago Sun 01:52"
。
*a, b, c = line.split()
是做什么的?特别是,星号的意义是什么?
编辑:经测试,似乎 "Chicago"
、"Sun"
和 "01:52"
都存储在 a
、b
和 [=19 中=].星号似乎导致 "Chicago"
作为列表的第一个元素存储在 a 中。所以,我们有 a = ["Chicago"]
、b = "Sun"
和 c = "01:52"
。在这种情况下,有人可以指出 material 星号运算符的功能吗?
用空格分割该文本将得到:
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 and 了解有关 splat 运算符、它们如何工作以及它们适用于何处的更多信息。
假设 line
是:"Chicago Sun 01:52"
。
*a, b, c = line.split()
是做什么的?特别是,星号的意义是什么?
编辑:经测试,似乎 "Chicago"
、"Sun"
和 "01:52"
都存储在 a
、b
和 [=19 中=].星号似乎导致 "Chicago"
作为列表的第一个元素存储在 a 中。所以,我们有 a = ["Chicago"]
、b = "Sun"
和 c = "01:52"
。在这种情况下,有人可以指出 material 星号运算符的功能吗?
用空格分割该文本将得到:
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 and