Как избавиться от вложенных списков из списка из запроса к базе данных? - PullRequest
0 голосов
/ 25 ноября 2018

Задача:

Написать функцию с именем "one_column", которая не принимает никаких параметров и возвращает список.Существует база данных, сохраненная в файле с именем «example.db», содержащим таблицу с именем «смысл» со столбцами «носитель», «описание» и «время», каждый из которых хранит целочисленные значения.Возврат списка, содержащего только значение «хронометража» каждой записи в таблице.

Мой код пока:

import sqlite3

conn = sqlite3.connect('example.db')
c = conn.cursor()
conn.commit()
def one_column():
    total = c.execute('SELECT timing FROM understanding')
    return list(total)

Мой код возвращает

[[30], [63], [63], [7], [62], [79], [1], [54], [20], [45], [93], [45], [38], [30], [84], [64]].

но ожидаемый результат -

[30, 63, 63, 7, 62, 79, 1, 54, 20, 45, 93, 45, 38, 30, 84, 64].

Как избавиться от вложенных списков?

1 Ответ

0 голосов
/ 25 ноября 2018

Если ваши внутренние списки содержат только один элемент каждый, существует очень простое понимание списка, которое выводит список из списка.

>>> lst = [[30], [63], [63], [7], [62], [79], [1], [54], [20], [45], [93], [45], [38], [30], [84], [64]]
>>> [x for x, in lst]
[30, 63, 63, 7, 62, 79, 1, 54, 20, 45, 93, 45, 38, 30, 84, 64]

Это распаковывает последовательности длины один в lst.

Если ваши внутренние списки могут иметь более одного элемента, см. этот вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...