6

文档中的切片示例仅显示用作索引的整数文字和变量,而不是更复杂的表达式(例如myarray[x/3+2:x/2+3:2])。PEP-8 也没有涵盖这种情况。此处空白的通常用法是什么:myarray[x/3+2:x/2+3:2]、、myarray[x/3+2 : x/2+3 : 2]myarray[x/3+2: x/2+3: 2](似乎没有其他合理的选择)?

4

2 回答 2

7

我从未见过在切片操作中使用空间,所以避免它们会出错。再说一次,除非它对性能很重要,否则我倾向于将表达式完全移到切片操作之外。毕竟,您的目标是可读性:

lower = x / 3 + 2
upper = x / 2 + 3
myarray[lower:upper:2]
于 2012-12-12T15:08:34.130 回答
3

我相信 PEP8 在这个主题上最相关的摘录是:

此处提供的指南旨在提高代码的可读性并使其在广泛的 Python 代码中保持一致。

在这种情况下,我个人的选择可能是史蒂夫梅恩的答案,或者可能是:

myarray[slice(x / 3 + 2, x / 2 + 3, 2)]
于 2012-12-12T15:15:27.810 回答