在列表 python 3 中查找子列表的索引

Finding index of sublist in list python 3

我有一个列表,最初是空的,但用户将子列表附加到列表中。

然后我需要使用子列表的前 2 个元素搜索特定子列表的索引。如果前两个元素是唯一的两个元素,但当用户将更多详细信息附加到子列表中时,这将起作用。

我需要一种方法来仅使用前两个元素来搜索子列表的索引。有任何想法吗?

database=[] 
fn=input("Enter the students first name:")
sn=input("Please enter the students surname:")

rr=(any(fn and sn in i for i in database))        

if rr==True:
 print("true")
 pos=(database.index([fn, sn]))

开关:

pos=(database.index([fn, sn]))

有了这个:

pos=[i for i in range(len(database)) if database[i][0]==sn and database[i][1]==fn]

第一项为fn,第二项为sn

的列表中所有子列表的第returns个位置

您需要找到特定的子列表以将其提供给 index 函数,例如将检查器修改为 return 子列表

for sublist in database:
  if fn in sublist and sn in sublist:
    index_sublist = sublist
    break

然后通过找到的子列表搜索索引

pos = (database.index(index_sublist))

顺便检查一下

fn and sn in i for i in database

在这种情况下,您检查 fn 是否存在并且 sn 在 i 中。尝试

fn in i and sn in i for i in database

此外,还有更多节省时间的方法来存储您的任务值,例如在以 tuple(sublist[:2]) 作为键和子列表作为值

的字典中