Python - 在列表中查找包含字符串的索引


有时在使用 Python 字符串时,我们可能会遇到一些实际场景,其中它对于文本解析、模式匹配和从文本数据中提取特定信息很有用。在 Python 中,我们有一些内置函数,例如 type()、index()、append() 和 isinstance(),可用于查找列表中包含字符串的索引。

让我们来看一个例子

给定的输入字符串,

my_list = [108, 'Safari', 'Skybags', 20, 60, 'Aristocrat', 78, 'Raj']

输出

1, 2, 5, 7

解释

变量名 my_list 存储包含列表中整数和字符串混合的输入列表。最终输出成为列表中存在的 字符串索引 位置。

语法

以下语法在示例中使用

type()

内置函数 type() 用于返回对象的类型。例如,一个变量包含值 4,其类型为整数。

index()

index() 是 Python 中的一个内置函数,可用于在列表中搜索元素并返回元素的位置。

append() 

append() 是 Python 中的一个内置方法,它接受单个元素作为参数,将其添加到列表的末尾。

isintance()

内置函数 isinstance() 用于检查对象或变量是否属于指定的类或数据类型。

使用 for 循环和 index() 函数

在以下示例中,首先将输入列表存储在变量 Fruit_list 中并显示该列表。然后使用 for 循环遍历变量 i 迭代列表。接下来,将列表的类型设置为字符串,这将从列表中找到字符串元素。最后,使用内置函数 index() 和名为 Fruit_list 的变量显示结果。

示例

Fruit_list = ['Banana', 'Apple', 1000, 'Mango']
print("String present in the index:\n")
# iterate through the list of elements
for i in Fruit_list:
# check for type is str
    if type(i) is str:
# display index
        print(Fruit_list.index(i))

输出

String present in the index:

0
1
3

特定字符串搜索以查找索引

在以下示例中,我们将首先定义名为 all_index() 的函数,该函数接受两个参数 - value(接收指定的字符串)和 qlist(接收列表项)。该函数使用 while 循环重复调用列表的 index 方法以查找列表中 value 的下一个出现位置。如果找到一个出现位置,则其索引将附加到列表 ids 中。如果没有找到更多出现位置,则会引发并捕获 ValueError,并退出循环。最后,返回索引列表。该程序使用递归函数设置输入列表,并在 index() 和 append() 的帮助下,它将找到相同字符串的所有索引。

示例

def all_index(value, qlist):
    ids = []
    idx = -1
    while True:
        try:
            idx = qlist.index(value, idx+1)
            ids.append(idx)
        except ValueError:
            break
    return ids
print("Specific search on string index:")
all_index("Obm", ["Obm","Abc","Obm","Abm","Obm"])

输出

Specific search on string index:
[0, 2, 4]

使用 index() 函数

在以下示例中,首先将输入列表存储在变量 list_1 中。然后使用 print 函数设置打印语句。接下来,它将使用内置函数 index,该函数接受参数 'POP' 和 list_1 以查找特定索引字符串。

示例

list_1 = ['PUSH', 'TOP','POP']
print("The following index is:")
list_1.index('POP')

输出

The following index is:
2

使用 isinstance() 函数

在以下示例中,首先创建列表并将其存储在变量 list1 中,并显示该列表。然后将变量 inx 初始化为 0,它将指示列表中的第一个元素,并帮助在 while 循环中进行迭代。使用 while 循环,它将根据列表索引检查条件。然后它使用内置函数 isinstance(),该函数接受参数 - list[inx] 和 str 以查找对象类型以返回指定的字符串索引。

示例

# create the list containing both string and integer
list1 = ['Vivek', 198, 200, 'Jayant', 'deep', 78]
# display list1
print("The original list:", list1)
# initialize index variable
inx = 0
# iterate through the list of elements using a while loop
print("The following string index:")
while inx < len(list1):
# check for type is str
    if isinstance(list1[inx], str):
# display the index
        print(inx)
# increment the index
    inx += 1

输出

The original list: ['Vivek', 198, 200, 'Jayant', 'deep', 78]
The following string index:
0
3
4

结论

我们讨论了解决问题陈述的各种方法。for 和 while 等循环有助于在列表中进行迭代,并使用条件查找特定索引。内置函数 index() 返回字符串在列表中的特定位置,并使用 append() 添加筛选字符串。

更新于: 2023-08-16

2K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告