python list的index()和find()的实现

  • Post category:Python

在Python编程中,list是一种常用的数据类型,用于表示一个有序的、可变的序列。list中包含了很多常用的方法,其中包括index()和find()方法。这两个方法都可以用来查找列表中某个元素的位置,但是它们之间有很多不同之处。下面将详细讲解list的index()和find()的实现。

index()方法

index()方法是list中的一个方法,用于查找列表中某个元素的位置。它的语法如下:

list.index(x[, start[, end]])

其中,x表示要查找的元素,start表示查找的始位置(默认为0),end表示查找的结束位置(默认为列表的长度)。

index()方法会返回列表中第一个匹配元素的索引值。如果列表中不存在该元素,则会抛出ValueError异常。

下面是一个示例,演示了如何使用index()方法查找列表中某个元素的位置:

lst = ['apple', 'banana', 'orange', 'pear']
idx = lst.index('orange')
print(idx) # 输出2

上述代码中,我们首先创建了一个包含4个元素的列表lst。然后,我们使用index()方法查找列表中元素’orange’的位置,并将结果存储在idx中。最后,我们输出idx,可以看到它是2,即’orange’在列表中的索引值。

find()方法

find()方法是Python中字符串类型的一个方法,用于查找字符串中某个子串的位置。它的语法如下:

str.find(sub[, start[, end]])

其中,str表示要查找的字符串,sub表示要查找的子串,start表示查找的起始位置(默认为0),end表示查找的结束位置(默认为字符串的长度)。

find()方法会返回字符串中第一个匹配子串的索引值。如果字符串中不存在该子串,则会返回-1。

下面是一个示例演示了如何使用find()方法查找字符串中某个子串的位置:

s = 'hello world'
idx = s.find('world')
print(idx) # 输出6

上述代码中,我们首先创建了一个字符串s。然后,我们使用find()方法查找字符串中子串’world’的位置,并将结果存储在idx中。最后,我们输出idx,可以看到它是6,即’world’在字符串中的索引值。

index()方法和find()方法的比较

index()方法和find()方法都可以用来查找列表或字符串中某个元素或子串的位置,但是它们之间很多不同之处。下面是它们之间的比较:

  1. index()方法只能用于列表,而find()方法只能用于字符串。
  2. index()方法查找的是元素的位置,而find()方法查找的是子串的位置。
  3. index()方法会抛出ValueError异常,而find()方法会返回-1。

下面是两个示例,演示了index()方法和find()方法的比较:

示例1

下面是一个示例,演示了如何使用index()方法和find()方法查找列表或字符串中某个元素或子串的位置:

# 使用index()方法查找列表中某个元素的位置
lst = ['apple', 'banana 'orange', 'pear']
idx = lst.index('orange')
print(idx) # 输出2

# 使用find()方法查找字符串中某个子串的位置
s = 'hello world'
idx = s.find('world')
print(idx) # 输出6

上述代码中,我们首先使用index()方法查找列表中素’orange’的位置,并将结果存储在idx中。然后,我们使用find()方法查找字符串中子串’world’的位置,并将结果存储在idx中。最后,我们输出idx,可以看到它们分别是2和6。

示例2

下面是另一个示例,演示了当列表或字符串中不存在要查的元素或子串时,index()方法和find()方法的不同表现:

# 使用index()方法查找列表中不存在的元素
lst = ['apple', 'banana', 'orange', 'pear']
try:
    idx = lst.index('watermelon')
except ValueError:
    print('Value: list.index(x): x not in list')

# 使用find()方法查找字符串中不存在的子串
s = 'hello world'
idx = s.find('python')
if idx == -1:
    print('Not found')

上述代码中,我们首先使用index()方法查找列表中的元素’watermelon’的位置。由于列表中不存在该元素,因此index()方法会抛出ValueError异常。我们使用try-except语句捕获该异常,并输出错误信息。

然后,我们使用find()方法查找中不存在的子串’python’的位置。由于字符串中不存在该子串,因此find()方法会返回-1。我们使用if语句判断返回值是否为-1,如果是,则输出’Not found’。

从上述两个示例可以看出,当列表或字符串中不存在要查找元素或子串时,index()方法和find()方法的不同表现。index()方法会抛出ValueError异常,而find()方法会返回-1。