让我们一步一步看代码。你想切掉最初的零。如果您知道第一个非零元素的索引n,则表达式看起来像arr = arr[n:]这基本上就是我们在这里所拥有的,使用n = next((i for i, x in enumerate(arr) if x != 0), len(arr)).通常,双参数形式的next将返回第二个参数作为标记,而不是StopIteration在迭代器用完时引发 a。这就是它的len(arr)用途。如果所有元素都为零,则表达式变为arr = arr[len(arr):] # obviously empty如果有一个非零元素,next调用将找到它的索引(启用enumerate),并返回它。