Как я могу сравнить числа, полученные из базы данных, с sqlite3 в Python? ⇐ Python
-
Гость
Как я могу сравнить числа, полученные из базы данных, с sqlite3 в Python?
Я новичок в программировании, работаю на Python с sqlite3, и у меня есть столбец, в котором числа упорядочены, но могут быть пробелы (1, 2, 4, 7, 8... ). Я пытаюсь создать цикл For, в котором я сравниваю числа по порядку (идентификаторы) и устраняю пробелы (1, 2, 3, 4, 5...).
Функция идет
def deleteGaps(idTuple): idList = list(idTuple) #преобразование полученного кортежа в список, чтобы иметь возможность его изменять previousId=-1 # -1, потому что первый элемент — [0] для идентификатора в idList: если идентификатор > предыдущийId+1: идентификатор = предыдущийId+1 print(id) #Просто для тестирования, позже я займусь обновлением таблицы предыдущийId = идентификатор И это выдает следующую ошибку
, если id > previousId+1: ^^^^^^^^^^^^^^^^^ TypeError: '>' не поддерживается между экземплярами 'tuple' и 'int' Если я начну print(idList), он выдаст мне «[(1,), (2,), (4,), (7,), (8,)]» вместо ожидаемого «(1, 2, 4, 7, 8)». Вероятно, в этом корень проблемы, но я не знаю, как правильно выполнить преобразование.
Есть предложения? Спасибо всем.
PS: Я понимаю, что могу просто получить длину кортежа и присвоить 1, 2, 3... n=длине, но мне хотелось бы знать, как перейти от [(1,), ( 2,)] в (1, 2) в любом случае.
Я новичок в программировании, работаю на Python с sqlite3, и у меня есть столбец, в котором числа упорядочены, но могут быть пробелы (1, 2, 4, 7, 8... ). Я пытаюсь создать цикл For, в котором я сравниваю числа по порядку (идентификаторы) и устраняю пробелы (1, 2, 3, 4, 5...).
Функция идет
def deleteGaps(idTuple): idList = list(idTuple) #преобразование полученного кортежа в список, чтобы иметь возможность его изменять previousId=-1 # -1, потому что первый элемент — [0] для идентификатора в idList: если идентификатор > предыдущийId+1: идентификатор = предыдущийId+1 print(id) #Просто для тестирования, позже я займусь обновлением таблицы предыдущийId = идентификатор И это выдает следующую ошибку
, если id > previousId+1: ^^^^^^^^^^^^^^^^^ TypeError: '>' не поддерживается между экземплярами 'tuple' и 'int' Если я начну print(idList), он выдаст мне «[(1,), (2,), (4,), (7,), (8,)]» вместо ожидаемого «(1, 2, 4, 7, 8)». Вероятно, в этом корень проблемы, но я не знаю, как правильно выполнить преобразование.
Есть предложения? Спасибо всем.
PS: Я понимаю, что могу просто получить длину кортежа и присвоить 1, 2, 3... n=длине, но мне хотелось бы знать, как перейти от [(1,), ( 2,)] в (1, 2) в любом случае.
Мобильная версия