(Python) Как изменить кортежи в кортеже - PullRequest
0 голосов
/ 24 марта 2020

Я делаю fetchall, чтобы получить значение моей базы данных, но у меня есть проблема.

fetchall возвращает мне кортеж:

((25, 'Bonzon', 'Julien', '0642181185', 25), (1, 'BLOQUIAU', 'Thomas', '0669696969', None), (2, 'PARAT', 'Clement', '0669696969', None), (3, 'FOUCAUD', 'Enzo', '0669696969', None), (4, 'JEAN', 'Alexandre', '0678787878', None), (23, 'Bal', 'Hugo', '0642181185', None), (24, 'Gerez', 'Quentin', '0642181185', None))

Однако в кортеже мы не может напрямую изменить значение. Я мог бы найти решения для преобразования кортежа в список, изменения значения и возврата к кортежу.

[(25, 'Bonzon', 'Julien', '0642181185', 25), (1, 'BLOQUIAU', 'Thomas', '0669696969', None), (2, 'PARAT', 'Clement', '0669696969', None), (3, 'FOUCAUD', 'Enzo', '0669696969', None), (4, 'JEAN', 'Alexandre', '0678787878', None), (23, 'Bal', 'Hugo', '0642181185', None), (24, 'Gerez', 'Quentin', '0642181185', None)]

Проблема в том, что когда я делаю это, я могу это сделать, но у меня есть кортежи в моем кортеже. И я не знаю, как изменить кортежи в основном кортеже

Что-нибудь помогает решить мою проблему?

С наилучшими пожеланиями

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

Вы не можете изменить кортеж.

Вы должны преобразовать все в списки, а затем изменить их.

Рассмотрите этот пример:

t = ((1, 2), (3, 4))
l = [list(e) for e in t]     # [[1, 2],[3, 4]]
# < ---  modify l --- >
n = [ tuple(e) for e in l]   # [(1, 2), (3, 4)]
n = (*n,)                    # ((1, 2), (3, 4))
0 голосов
/ 24 марта 2020

Вы можете легко преобразовать свои кортежи в списки, подобные этому:

# I think this is the first thing you did
myList = list(myTuple)

# Additionally to convert your inside tuples into a list you could do:
myList = [list(t) for t in myList]

И это все, я верю, что это поможет: P! Дайте мне знать, если это помогло!

...