Python 如何分配到以*varname结尾的逗号分隔的变量列表?

Python 如何分配到以*varname结尾的逗号分隔的变量列表?,python,Python,有人能给我解释一下这个代码吗 a, b, c, d, *e = map(int, input().split()) 为什么这样做?星操作员的角色到底是什么 我知道它会在d之后列出任意长数量的输入,但它是如何做到的?另外,从我对map函数的理解来看,它有两个参数:一个函数和一个iterable。然而,input().split()究竟如何成为一个可移植的对象呢?提前谢谢,请原谅我的知识不足。让我们从内到外工作吧 input().split()将接受键盘输入并返回一个列表,例如: 输入a b c

有人能给我解释一下这个代码吗

a, b, c, d, *e = map(int, input().split())
为什么这样做?星操作员的角色到底是什么


我知道它会在d之后列出任意长数量的输入,但它是如何做到的?另外,从我对map函数的理解来看,它有两个参数:一个函数和一个iterable。然而,
input().split()
究竟如何成为一个可移植的对象呢?提前谢谢,请原谅我的知识不足。

让我们从内到外工作吧

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

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

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


a,b,c,d,*e=..
获取从
map
返回的iterable并将其分配给这些变量。a、 b、c和d将是前四个整数,e将是剩余整数的列表。

input().split()
将创建一个列表,该列表是一个iterable。查看
'abc'.split()的作用。但是你似乎知道扩展解包语法的作用,即星形,那么你到底想知道什么呢?也许你应该检查一下。非常清楚,谢谢!您没有义务接受答案,但是如果您得到了几个不同的答案,和/或一个非常好的答案,您可能需要指出为什么它不能回答您的问题,以便可以对其进行改进。接受答案也会告诉其他有类似问题的人,所提供的解决方案帮助了你。(而且你也有一定的声誉。)