распаковка кортежа

Получаю вот такой вот кортеж из бд:

[(1, 'Петрова Анастасия Ивановна', '+78005553535', '123456237562\n')]

Вопрос, как я могу определить номер элемента в кортеже под которым прячется номер? Пробовал через цикл for, но ничего не вышло

for i in numbers:
    if "+" in numbers[0][i]:
        tmp = numbers[0][i]

После определения номер нужно будет его изменить, вообще возможно ли это? Также пробовал преобразовывать кортеж в список и словарь, но тоже ничего. Пробовал реализовать поиск по длине, но опять же не получилось, что то не так я делаю с циклом, подскажите пожалуйста.


Ответы (1 шт):

Автор решения: CrazyElf

Можно так всё перебрать - сначала кортежи в списке, а потом элементы кортежа:

numbers = [(1, 'Петрова Анастасия Ивановна', '+78005553535', '123456237562\n')]
for record in numbers:
    for item in record:
        if '+' in str(item):
            print(item)

Вывод:

+78005553535

Если нужны "координаты" элемента - можете использовать enumerate:

for n_rec, record in enumerate(numbers):
    for n_item, item in enumerate(record):
        if '+' in str(item):
            print(n_rec, n_item, item)

Вывод:

0 2 +78005553535

Т.е. это кортеж с индексом 0 в списке и в самом кортеже это элемент с индексом 2.

→ Ссылка