擅长:python、mysql、java
<p>因为其他答案都是和numpy数组一起使用的,速度非常快,为了完整起见,我想添加一些其他答案。(在最初的问题中,如果n是奇数怎么办,以及作者期望的是从零开始还是从一开始的索引,这显然有些模糊。)</p>
<p>你可以很简单地使用列表理解来创建一个列表</p>
<pre><code>[1 if i in [0, n/2] else (2 if i <=(n/2) else 0) for i in range(0, n)]
</code></pre>
<p>但是更快的方法是通过扩展类来扩展列表的功能:</p>
^{pr2}$
<p>您可以调用整个列表,也可以只调用单个元素。创建整个列表仍然很慢。在</p>