我有一個包含元組的列表。 我想通過檢查元組的所有第一項來遍歷該列表。 如果我只有一個結果,我想返回一個索引爲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是隻有一個)
你能提供一個輸入和期望輸出的例子?我不清楚你想達到什麼目的。結果是什麼? –