Если вы заинтересованы только в печати строки в сочетании с определенным числом, я бы сделал что-то вроде этого:
a = [("words",3), ("blah",7), ("hmm",1)]
b = [c[0] for c in a if c[1]==3]
print(b)
>>> b
['words']
Если вам интересно поиск значения, максимально близкого квозможно с заданным значением, я бы сделал что-то вроде этого:
1.Создать массив b
со всеми числовыми значениями в a
2.Создать массивкортежи с разницей abs между значениями в b
и dot
и их индексом
3. Найдите минимальное значение в этом последнем массиве и возьмите соответствующий индекс в b
4. b[index]
- это значение, которое нужно искать в a
.
def search_element(dot):
b = [c[1] for c in a]
index = min([(abs(f-dot),i) for i,f in enumerate(b)])[1]
n = b[index]
b = [c[0] for c in a if c[1]==n]
return b