如何通过定义函数在元组列表中查找字符串
How to find a string in a list of tuples by defining a function
这可能很简单,但我想检查元组列表中的现有字符串,然后 return 该字符串出现的相应元组。我还希望它是一个不区分大小写的搜索,这样它就可以在不考虑大小写等的情况下获取字母。
我想定义一个函数来执行此操作,这是我尝试过的:
test_scores = [('Math midterm, 87','math final, 92'),
('english essay, 100','english midterm, 87','english final, 99'),
('science midterm, 95','science final, 100')]
def searchScores(searchString):
for i in range (len(test_scores)):
for j in range (len(test_scores[i])):
if test_scores[i][j].casefold() == searchString.casefold():
print (test_scores[i])
我希望能够像这样输入我的搜索:
searchScores('math')
searchScores('87')
哪个应该 return:
('Math midterm, 87','math final, 92')
('english essay, 100','english midterm, 87','english final, 99')
然而,当我输入要检查的字符串时,return什么也没做...
如果需要任何说明,请告诉我。谢谢!
我不知道为什么它没有为你显示任何输出,但假设 test_scores
变量是一个包含字符串的“元组列表”,这对我有用。
test_scores = [("abc","def"),("ghi","jkl"),("mno","pqr")]
def searchScores(searchString):
for tup in test_scores:
for ele in tup:
if ele.lower() == searchString.lower():
print(tup)
st = input("Enter : ")
searchScores(st)
此代码中的函数将在每个元组中搜索搜索字符串。
test_scores =[('math', '87'), ('english', '33'), ('67', 'math')]
def search_scores(scores, searchString):
lower_scores = [(score[0].lower(), score[1].lower()) for score in scores]
items = list(filter(lambda x:searchString.lower() in x, lower_scores))
return items
print(search_scores(test_scores, 'math'))
这可能很简单,但我想检查元组列表中的现有字符串,然后 return 该字符串出现的相应元组。我还希望它是一个不区分大小写的搜索,这样它就可以在不考虑大小写等的情况下获取字母。 我想定义一个函数来执行此操作,这是我尝试过的:
test_scores = [('Math midterm, 87','math final, 92'),
('english essay, 100','english midterm, 87','english final, 99'),
('science midterm, 95','science final, 100')]
def searchScores(searchString):
for i in range (len(test_scores)):
for j in range (len(test_scores[i])):
if test_scores[i][j].casefold() == searchString.casefold():
print (test_scores[i])
我希望能够像这样输入我的搜索:
searchScores('math')
searchScores('87')
哪个应该 return:
('Math midterm, 87','math final, 92')
('english essay, 100','english midterm, 87','english final, 99')
然而,当我输入要检查的字符串时,return什么也没做...
如果需要任何说明,请告诉我。谢谢!
我不知道为什么它没有为你显示任何输出,但假设 test_scores
变量是一个包含字符串的“元组列表”,这对我有用。
test_scores = [("abc","def"),("ghi","jkl"),("mno","pqr")]
def searchScores(searchString):
for tup in test_scores:
for ele in tup:
if ele.lower() == searchString.lower():
print(tup)
st = input("Enter : ")
searchScores(st)
此代码中的函数将在每个元组中搜索搜索字符串。
test_scores =[('math', '87'), ('english', '33'), ('67', 'math')]
def search_scores(scores, searchString):
lower_scores = [(score[0].lower(), score[1].lower()) for score in scores]
items = list(filter(lambda x:searchString.lower() in x, lower_scores))
return items
print(search_scores(test_scores, 'math'))