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

时间:2019-03-16 13:46:07

标签: python python-3.5

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

然后,我需要使用子列表的前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]))

2 个答案:

答案 0 :(得分:0)

开关:

paginate = driver.find_element_by_class_name('pagination-link-next')
while paginate.is_displayed() == true:
    for link in soup_results_overview.findAll("a", class_="searchResults__detail"):

        #Selenium visits each Search Result Page
        searchResult.click() #click Search Result

        #Scrape the form with a function defined elsewhere
        scrape()

        #Ask Selenium to go back to the search results overview page
        driver.back()

    #Click pagination button after executing the for loop finishes on each page
    paginate.click()

与此:

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

这将返回列表中所有子列表的位置,其第一项为pos=[i for i in range(len(database)) if database[i][0]==sn and database[i][1]==fn] ,第二项为fn

答案 1 :(得分:0)

您需要找到特定的子列表以将其赋予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中。