文档中的切片示例仅显示用作索引的整数文字和变量,而不是更复杂的表达式(例如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]
(似乎没有其他合理的选择)?
问问题
276 次
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 回答