Вы можете искать для конкретного кортежа в списке результатов итерации по списку и проверить значение второго элемента каждого кортежа (который является ключом):
results = [('object%d' % i, '111.111.5.%d' % i) for i in range(1,8)]
key = '111.111.5.4'
result = None
for t in results:
if t[1] == key:
result = t
print result
Выход:
('object4', '111.111.5.4')
Это демонстрирует доступ к элементу в кортеже с индексом на основе нуля (1 в этом случае означает второй элемент). Ваш код будет более читаемым, если вы распаковать кортежи в цикл:
for obj, value in results:
if value == key:
result = (obj, value)
Ваши результаты могут быть более обычно полезно, если вы преобразовать их в словарь:
>>> results_dict = {v:k for k,v in results}
>>> print results_dict['111.111.5.6']
object6
>>> print results_dict['111.111.5.1']
object1
>>> print results_dict['blah']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'blah'
>>> print results_dict.get('111.111.5.5')
object5
>>> print results_dict.get('123456')
None
Использование dict.get()
близка к синтаксис, который вы запросили в своем вопросе.
вы не можете использовать словарь вместо кортежа? Вам будет легче. –
Что вы подразумеваете под «объектом массива». В python реализовано более одной реализации массива. Но похоже, что вы хотите получить какой-либо другой тип даты, например 'list' или' string'. –