也许,这听起来像个愚蠢的问题。但是,我必须学习索引是什么,因为我想学习python。
例如,在网站上,我看到了这个:
方法find()确定字符串str是出现在字符串中还是出现在字符串中 如果起始索引为beg且结束索引结束,则为字符串的子串 给出。
http://www.tutorialspoint.com/python/string_find.htm
“索引”在这里是什么意思?我希望你向我解释一下,就像你正在向孩子解释一些事情。因为我的理解力有点差。无论如何。您甚至可以提供示例来解释索引是什么。
非常感谢。
答案 0 :(得分:8)
在您的示例中,索引是指有序列表中的位置。 Python字符串可以被认为是字符列表;每个字符的索引从零(在开头)到长度减一(在结尾)。
对于字符串“Python”,索引会像这样分解:
P y t h o n
0 1 2 3 4 5
此外,Python支持负索引,在这种情况下,它从最后开始计算。因此,最后一个字符可以使用-1
编制索引,第二个字符可以使用-2
编制索引等等:
P y t h o n
-6 -5 -4 -3 -2 -1
大多数情况下,您可以自由地混合正负索引。例如,如果您只想使用第二个到倒数第二个字符的find
,您可以这样做:
"Python".find("y", beg=1, end=-2)
答案 1 :(得分:6)
“index”表示“位置”。
我们以find()
为例:find()
将在另一个字符串中查找字符串。它将在名为beg
的起始索引处开始搜索,并将在名为end
的结束索引处结束搜索。因此,它只会在beg
和end
之间进行搜索。通常(默认情况下)beg
为0(表示它是字符串中的第一个字符),end
是字符串的长度减1(这意味着它是字符串中的最后一个字符) )。所以索引只是一个位置(不仅在一个字符串中,例如也在一个数组中)。
答案 2 :(得分:4)
考虑这个字符串"Hello"
。如果你想指出一些像e
这样的字符,你需要一个索引,这是一个位置编号。 python中的索引从零开始计数。因此e
中的字母"Hello"
索引为1。
尝试运行以下代码:
print "Hello".find("e");
它应该返回1
。
你可以进一步玩它再次运行它的功能。尝试将"e"
替换为"H"
,然后尝试不在"Hello"
中的内容。
答案 3 :(得分:4)
如果带有房屋的街道类似于带元素的数组,那么房屋号码就像索引一样。但是,Python使用零开始的数字。
Python(版本3)中的内置序列类型是字符串(unicode字符序列),字节(从0到255的小整数序列,即字节值的序列),元组(任何元素的序列),以及列表(任何元素的序列)。所有这些都是通过数组实现的;通过这种方式,它们可以像任何(其他)编程语言中的数组一样进行索引。
如果a
是这样的数组(即上述序列类型之一),则a[0]
指的是街道中第一栋房屋的内容,a[1]
指向第二栋房屋可以修改一些序列(这里只是列表),因此它们被称为可变序列。一些序列不能被修改(字符串,字节,元组),因此它们被称为不可变的。
对于可变序列类型对象,可以通过lst[0] = 3
之类的赋值来更改元素,只能读取不可变序列的元素并使用值,如print(s[3])
。
对于列表和元组,元素不直接存储在数组中。只有对目标对象的引用存储在里面。间接访问目标对象(沿引用一跳)。想想你去索引的房子,里面的人告诉你真实内容在哪里(在另一个房子里,而不是在这条街上)。在这种情况下,即使是来自(不可变)元组的元素,如t[5]
- 即。引用 - 可用于更改目标对象内容...如果目标对象是可变的。
答案 4 :(得分:0)
在python中,索引从0开始。因此,基本上lst [0]表示列表(lst)中的第一个元素,lst [1]表示列表中的第二个元素,依此类推...。我们也可以将最后一个元素作为lst [ -1],lst [-2]在倒数第二,依此类推...在其他编程语言(如R)中,索引从1而不是0开始,因此我们需要注意这一点。