我有一个列表,该列表最初为空,但用户将子列表添加到列表中。
然后,我需要使用子列表的前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]))
您需要找到特定的子列表以将其提供给index
函数,例如通过修改checker返回子列表
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
此外,还有更多时间有效的方法来存储您的任务值,例如在dict中将tuple(sublist[:2])
作为键,子列表作为值
开关:
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