我有一个包含元组的列表。 我想通过检查元组的所有第一项来遍历该列表。 如果我只有一个结果,我想返回一个索引为0的搜索结果列表。 如果结果> 1我想返回一个带搜索结果索引1的列表。根据列表长度生成列表
我试图用发电机做到这一点,但失败了。我现在想出了以下,但我觉得这可能会更好..任何人的一些建议?
a = [("ab", 2), ("ac", 3), ("bd", 3)]
def returner(keyword):
def firstitem(_a):
list1.append(_a[0])
list2.append(_a[1])
def otheritems(_a):
list2.append(_a[1])
list1 = []
list2 = []
append = firstitem
for _a in a:
if _a[0].startswith(keyword):
append(_a)
append = otheritems
return list2 if len(list2) > 1 else list1
returner("a")
将导致[2,3]
returner("b")
(索引开始一个或两个元组0)将导致["bd"]
(数组3作为结果的长度的索引1是只有一个)
你能提供一个输入和期望输出的例子?我不清楚你想达到什么目的。结果是什么? –