поиск двух значений в списке кортежей, содержащих три значения в python

#python-3.7

#python-3.7

Вопрос:

 [('12121212', 'computer', 'computer@123'), ('1223', 'asus', 'asus@123'), ('1111', 'testpro', 'testpro@123')]
  

Я хочу получить одно значение из кортежа в списке, если я введу два других значения, присутствующих в кортеже в python.
Предположим, что fvalue=computer и svalue =1212121212, тогда я получу tvalue как computer@123

Комментарии:

1. Не могли бы вы выразиться более определенно? Может быть, пример?

2. Пожалуйста, укажите, чего вы хотите достичь; Можете ли вы привести какой-нибудь пример?

3. Из вашего примера я понимаю, что вам нужна функция с 2 словами в качестве входных данных, которая определяет, какой из кортежей содержит эти 2 слова в любых трех позициях. Это верно?

Ответ №1:

Что-то вроде этого, если я понимаю, чего вы хотите. Это приведет к поиску кортежа, который содержит ваши 2 значения, и вернет третье.

 a = [('12121212', 'computer', 'computer@123'), ('1223', 'asus', 'asus@123'), ('1111', 'testpro', 'testpro@123')]

value1 = '1111'
value2 = 'testpro@123'


def search(val1, val2, list_to_search):
    for item in list_to_search:
        if val1 in item and val2 in item:
            item = list(item)
            item.remove(val1)
            item.remove(val2)

            return item[0]
    return None


print(search(value1, value2, a))
  

Результат: testpro