У меня есть список, содержащий кортежи. Я хочу выполнить поиск по этому списку, проверив все первые элементы кортежей. Если у меня есть только один результат, я хочу вернуть список с индексом 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]
(индекс 0 из обоих кортежей, начиная с одной)
returner("b")
привело бы к ["bd"]
(индекс 1 из кортежа 3 как длина результата только один)
Можете ли вы предоставить пример ввода и желаемого выхода? мне непонятно, чего вы пытаетесь достичь. Что такое результат? –