假设我想循环遍历数组并在循环索引中向前和向后索引所有索引,如下所示:
x = np.random.uniform(size=600)
for i in range(len(x)):
dot = np.dot(x[:-i], x[i:])
Run Code Online (Sandbox Code Playgroud)
现在这不起作用,因为x[:-0]就像x[:0]它给出的那样[].我可以单独处理零情况但是想知道是否有更多的pythonic方式来做这件事.
使用切片值的结尾-i or None.如果i是非零,那么它只是-i,但如果它是0,那么-0是假的,它评估并返回第二项None,这意味着"运行到序列结束".这是有效的,因为foo[:None]相当于foo[:],当你忽略切片的那个组成部分时它会None隐含,但是None显式传递是完全合法的,具有相同的效果.
所以你的新行将是:
dot = np.dot(x[:-i or None], x[i:])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |