冒号和逗号在 python 列表中代表什么?

新手上路,请多包涵

我在 python 脚本中遇到了这个问题 list[:, 1] 我想弄清楚逗号的作用。

原文由 andgeo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 536
1 个回答

一般来说:

 foo[somestuff]

调用 __getitem____setitem__ 。 (还有 __getslice____setslice__ ,但现在已弃用,所以我们不要谈论它)。现在,如果 somestuff 中有逗号,python 会将 tuple 传递给底层函数:

 foo[1,2]  # passes a tuple

如果有 : ,python 将传递一个切片:

 foo[:]  # passes `slice(None, None, None)`
foo[1:2]  # passes `slice(1, 2, None)`
foo[1:2:3]  # passes `slice(1, 2, 3)
foo[1::3]  # passes `slice(1, None, 3)

希望你明白了。现在如果有一个逗号和一个冒号,python 将传递一个包含切片的元组。在你的例子中:

 foo[:, 1]  # passes the tuple `(slice(None, None, None), 1)`

对象 ( foo ) 对输入的作用完全取决于对象。

原文由 mgilson 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题