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() 添加筛选字符串。