繁体   English   中英

在列表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子列表的位置

您需要找到特定的子列表以将其提供给index功能,例如通过修改检查器以返回子列表

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])作为键和子列表作为值的dict中存储任务值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM