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

问题描述 投票:0回答:2

我有一个列表,该列表最初为空,但用户将子列表添加到列表中。

然后,我需要使用子列表的前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]))
python python-3.5
2个回答
0
投票

您需要找到特定的子列表以将其提供给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])作为键,子列表作为值


0
投票

开关:

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

© www.soinside.com 2019 - 2024. All rights reserved.