Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与Python范围和列表索引混淆_Python_Python 2.7_Python 3.x - Fatal编程技术网

与Python范围和列表索引混淆

与Python范围和列表索引混淆,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我仍然是python世界的初学者,这是让我回头的原因之一。。是内置的范围和列表索引 我怎么知道这个范围会不会占用最后一个号码 比如说 范围(15)它会数到15还是14 范围(1,15)它会数到15还是14 List_1[:15]它将计数到16(最后一个元素)还是静止在15(之前的元素) list_1[1::][/code>假设列表是16个项目,它会算到最后一个元素吗 List\u 1[1:15]它将计入最后一个元素还是之前的元素 列表拼接: a = "hello" # there are 5

我仍然是python世界的初学者,这是让我回头的原因之一。。是内置的
范围和列表索引

我怎么知道这个范围会不会占用最后一个号码

比如说

  • 范围(15)
    它会数到15还是14
  • 范围(1,15)
    它会数到15还是14
  • List_1[:15]
    它将计数到16(最后一个元素)还是静止在15(之前的元素)
  • list_1[1::][/code>假设列表是16个项目,它会算到最后一个元素吗
  • List\u 1[1:15]
    它将计入最后一个元素还是之前的元素
列表拼接:

a = "hello" # there are 5 characters, so the characters are accessible on indexes 0..4

a[1] = 'e'
a[1:2] = 'e' # because the number after the colon is not reached.

a[x:y] = all characters starting from the character AT index 'x' and ending at the character which is before 'y'

a[x:] = all characters starting from x and to the end of the string

将来,如果您想知道python的行为是什么样的,您可以在python shell中进行尝试。只需在终端中键入python,您就可以输入您想要的任何行(尽管这对于单行程序而不是脚本来说非常方便)。

澄清此类疑问的最佳方法是使用REPL:

>>> range(10)
range(0, 10)
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x = list(range(10))
>>> x[:3]
[0, 1, 2]
>>> x[:1]
[0]
>>> x[1:10]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

好吧,这里有一个关于先前答案的散文版本

  • 范围(15)
    实际上生成了一个索引从0到14的列表
  • 范围(0,15)
    也会这样做;除非同时指定了起始索引和结束索引
  • list[:14]
    访问
    list
    的内容,包括第14个索引(第15个元素)
  • list[1:][/code>从第一个索引(第二个元素)到(包括)最后一个元素访问
    list
    的内容

  • 请阅读文档,尝试将它们放入python并打印出来!您应该将切片索引视为图轴上的细记号,第一个项目前有一个记号,每对项目之间有一个记号,最后一个项目后有一个记号。结果是比项目多打一个勾。对于“abc”,结果将是“0a1b2c3”。Seq[m:n]包括标记m和n之间的n-m项。在切片坐标中,项目索引将是.5、1、5、2.5、。有些语言舍入到0,1,2,…,其他语言舍入到1,2,3。谢谢Terry的解释一个完全的初学者不会知道REPL是什么-我只是在谷歌上搜索了一下。在你的程序中玩它不是更容易吗?@MarijkeVonk REPL是即时的,在您的程序中,您仍然需要打印语句并每次单击“运行”按钮以获取回复您的意思是它将始终保留最后一个元素?
    范围是半开的->最后一个元素从不包含感谢您的回复。。但是在列表中,正如我从你的回复中所理解的那样,a[a:b]将包括从a到b
    list[:14]之前的最后一个元素。
    将访问索引0到13,而不是第14个索引。
    >>> range(10)
    range(0, 10)
    >>> list(range(10))
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> x = list(range(10))
    >>> x[:3]
    [0, 1, 2]
    >>> x[:1]
    [0]
    >>> x[1:10]
    [1, 2, 3, 4, 5, 6, 7, 8, 9]