2

假设line是:"Chicago Sun 01:52"

做什么*a, b, c = line.split()?特别是星号的意义是什么?

编辑:经测试,似乎"Chicago","Sun""01:52"都存储在a,bc. 星号似乎导致"Chicago"作为列表的第一个元素存储在 a 中。所以,我们有a = ["Chicago"]和。在这种情况下,任何人都可以指出有关星号运算符功能的材料吗?b = "Sun"c = "01:52"

4

1 回答 1

4

用空格分割该文本将为您提供:

In [743]: line.split()
Out[743]: ['Chicago', 'Sun', '01:52']

现在,这是一个 3 元素list。分配将采用输出的最后两个元素并将它们分别分配给bc。然后*, 或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 3132Python 的 splat 运算符 * 和 ** 在哪里有效?有关 splat 运算符、它们如何工作以及它们适用于何处的更多信息。

于 2017-08-24T20:28:37.827 回答