【问题标题】:Colon (:) in Python list index [duplicate]Python列表索引中的冒号(:)[重复]
【发布时间】:2011-04-30 01:35:42
【问题描述】:

我是 Python 新手。我看到列表索引中使用了:,尤其是当它与函数调用相关联时。

Python 2.7 文档建议 lists.append 转换为 a[len(a):] = [x]。为什么len(a)后缀需要冒号?

我了解: 用于识别字典中的键。

【问题讨论】:

  • 从哪里获得 python 4.7?我要!在 2.7 中,The Tutorial 很好地涵盖了您的问题。

标签: python


【解决方案1】:

: 是切片语法的分隔符,用于“切出”序列中的子部分,[start:end]

[1:5] is equivalent to "from 1 to 5" (5 not included)
[1:] is equivalent to "1 to end"
[len(a):] is equivalent to "from length of a to end"

在 40:00 左右观看 https://youtu.be/tKTZoB2Vjuk?t=41m40s 他开始解释。

也适用于元组和字符串。

【讨论】:

  • 请记住 [1:5] 以索引 1 处的对象开始,不包括索引 5 处的对象。您还可以使用 [:] 制作列表的软拷贝
  • 因为像“:”这样的谷歌标点符号实际上并不容易,我特别感谢找到您的答案并发现它很有帮助。即使使用符号猎犬之类的东西,它也很常用,我担心我无法快速找到答案。
  • 不适用于字典。应用 d[:5] 是 d.__getitem__(slice(0, 5, None)) 的等价物。切片不可散列。
  • 你也可以进入:[start:end:step],这就是为什么[::-1]会以正常的开始和结束反转,但会后退。
  • @TomCharlesZhang 这些是在可迭代对象上操作的运算符。如果你只是[1:5] Python 不明白你在做什么。例如,它必须是 "Hello World"[1:5]['a','b','c','d', 'e','f','g'][1:5]
【解决方案2】:

切片运算符。 http://docs.python.org/tutorial/introduction.html#strings 向下滚动一下

【讨论】:

    【解决方案3】:

    a[len(a):] - 这会让你知道 a 的长度。它选择一个范围。如果您反转a[:len(a)],它将让您开始使用len(a)

    【讨论】:

    • 为什么要从数组长度开始获取子数组 (a[len(a):])?由于索引 len(a) - 1 之后没有元素,这不应该总是返回一个空子数组吗?
    • @AjaxLeung 空切片很有用,因为您可以分配给它们: a = list(range(0,10)) print('a\t', a) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print('slice\t', a[3:3]) # [] a[3:3] = [10,10,10] print('new a\t', a) # [0, 1, 2, 10, 10, 10, 3, 4, 5, 6, 7, 8, 9]
    猜你喜欢
    • 2023-03-22
    • 2017-07-15
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    相关资源
    最近更新 更多