<h2>冗长的回答</h2>
<p>对这个问题来说,<a href="https://docs.python.org/3/library/functions.html#int" rel="nofollow">^{<cd1>} builtin</a>(跟随链接了解整个故事)需要一个单独的参数,可以是数字文本,也可以是字符串。在</p>
<p>你的代码</p>
<pre><code>>>> a=str(input('Voer een door spatie gescheiden lijst met getallen in: ').split())
</code></pre>
<p>正在创建列表的文本表示形式,因为您使用了返回python对象文本表示形式的<code>str</code>内置项:</p>
^{pr2}$
<p>上面不是<code>int</code>所要求的数字的文本表示,而是列表的文本表示,因此当您将它传递给<code>int</code>时,它会抱怨</p>
<pre><code>ValueError: invalid literal for int() with base 10: "['2', '3', '4', '5']"
</code></pre>
<p>如果我们省略对<code>str</code>的调用呢?在</p>
<pre><code>>>> a = input('Voer een door spatie gescheiden lijst met getallen in: ').split()
>>> a
['2', '3', '4', '5']
>>> int(a)
TypeError: int() argument must be a string or a number, not 'list'
</code></pre>
<p>注意,错误消息是不同的:不再是<code>ValueError</code>,而是<code>TypeError</code>。我们有一个列表,它的项是表示数字的字符串,但是我们不允许使用list<em>作为<code>int</code>的参数。在</p>
<p>输入list comprehension,这是一个当代的习惯用法,可以操作列表(或通用的iterable)的内容。在</p>
<pre><code>>>> [int(elt) for elt in a]
[2, 3, 4, 5]
</code></pre>
<p>语法很简单,<code>[...]</code>你有左括号和右括号,就像你在使用列表文本时所写的那样,在里面有一个由内而外的循环,首先是循环的主体,然后是<code>for</code>规范。体的求值结果按顺序存储在解释器为您输出的列表中,正如您在上面看到的,我们没有更多的字符串表示数字而是整数。将列表理解的结果赋给变量</p>
<pre><code>>>> b = [int(elt) for elt in a]
</code></pre>
<p>你完成了:</p>
<pre><code>>>> print(b)
[2, 3, 4, 5]
>>>
</code></pre>