分配给以* varname结尾的变量的逗号分隔列表如何工作?

时间:2018-11-26 16:34:21

标签: python

有人可以向我解释此代码吗?

a, b, c, d, *e = map(int, input().split())

这为什么起作用,并且星操作员在这里的作用到底是什么?

我知道它列出了d之后任意长的输入的列表,但是它是怎么做到的呢?同样,从我对map函数的一点了解来看,它带有两个参数:函数和可迭代。然而,input().split()在世界上如何迭代?在此先感谢您,并请原谅我缺乏知识。

1 个答案:

答案 0 :(得分:2)

让我们由内而外地工作...

input().split()将接受键盘输入并返回一个列表,例如:

输入a b c d e f g,结果列表将为['a', 'b', 'c', 'd']

map接受一个函数和一个Iterable,并将Iterable的每个元素传递给该函数,结果返回一个新的Iterable。在您的情况下,功能int将应用于键盘输入的每个元素。

a, b, c, d, *e = ....将从map返回的可迭代对象分配给那些变量。 a,b,c和d将是前四个整数,e将是任何剩余的列表。