我有一个列表,该列表最初是空的,但是用户将子列表附加到列表中。
然后,我需要使用子列表的前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]))
答案 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])
作为键并将子列表作为值