📌  相关文章
📜  Python|获取匹配索引

📅  最后修改于: 2022-05-13 01:55:38.223000             🧑  作者: Mango

Python|获取匹配索引

有时,在处理列表时,我们需要处理两个列表并搜索匹配项,并仅返回匹配项的索引。当主列表的大小非常大时,查询此过程的整个列表是不可行的,因此只有匹配索引有助于解决这个问题。让我们讨论一些可以实现这一目标的方法。

方法 #1:使用列表理解 + index()
这个问题可以通过使用Python的 index函数来获得想要的索引来解决,并且可以使用列表理解将其扩展到整个字符串。

# Python3 code to demonstrate
# Get match indices
# using list comprehension and index()
  
# initializing lists
test_list1 = [5, 4, 1, 3, 2]
test_list2 = [1, 2]
  
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
  
# using list comprehension and index()
# Get match indices
res = [test_list1.index(i) for i in test_list2]
  
# print result
print("The Match indices list is : " + str(res))
输出 :
The original list 1 : [5, 4, 1, 3, 2]
The original list 2 : [1, 2]
The Match indices list is : [2, 4]

方法 #2:使用enumerate() + 列表推导
enumerate函数可用于为列表生成键值对,即它的索引和值,我们可以使用列表推导来存储它们。

# Python3 code to demonstrate
# Get match indices
# using list comprehension and enumerate()
  
# initializing lists
test_list1 = [5, 4, 1, 3, 2]
test_list2 = [1, 2]
  
# printing original lists
print("The original list 1 : " + str(test_list1))
print("The original list 2 : " + str(test_list2))
  
# using list comprehension and enumerate()
# Get match indices
res = [key for key, val in enumerate(test_list1)
                      if val in set(test_list2)]
  
# print result
print("The Match indices list is : " + str(res))
输出 :
The original list 1 : [5, 4, 1, 3, 2]
The original list 2 : [1, 2]
The Match indices list is : [2, 4]