Python列表索引中的冒号(:)

kur*_*der 97 python

我是Python的新手.我看到:列表索引中使用,特别是当它与函数调用相关时.

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

据我所知,:它用于识别字典中的键.

sou*_*kah 148

: 是切片语法的分隔符,用于"切出"序列中的子部分, [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"
Run Code Online (Sandbox Code Playgroud)

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

也适用于元组,词典和列表.

  • 请记住,[1:5]以索引1处的对象开头,并且不包括索引5处的对象.您还可以使用[:]制作列表的软拷贝 (11认同)
  • 因为谷歌标点符号并不像":"那么容易,所以我特别感谢您找到答案并发现它有用.即使使用像symbolhound这样的东西,它也是如此常用,我担心我无法快速找到答案. (5认同)
  • 你也可以进入:`[start:end:step]`,这就是为什么`[:: - 1]`在正常的开始和结束时反转,但向后退一步. (5认同)
  • 不适用于字典。应用 d[:5] 相当于 d.__getitem__(slice(0, 5, None))。切片不可散列。 (3认同)

小智 7

a[len(a):] - 这会让你达到最后的长度.它选择一个范围.如果你逆转 a[:len(a)] 它会让你开始任何事情len(a).

  • 为什么要获取从数组长度 (a[len(a):]) 开始的子数组?因为索引 len(a) - 1 之后没有元素,所以这不应该总是返回一个空子数组吗? (2认同)