如何摆脱数据库查询列表中的嵌套列表?

时间:2018-11-24 23:29:27

标签: python database list sqlite

任务:

写一个名为“ one_column”的函数,该函数不带任何参数并返回一个列表。有一个数据库保存在名为“ example.db”的文件中,该数据库包含一个名为“ understanding”的表,该表的列“ carrier”,“ describe”和“ timing”分别存储整数值。返回仅包含表中每个记录的“时间”值的列表。

到目前为止,我的代码:

dim text as String = myChildWindow.TextBox1.text

我的代码正在返回

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]].

如何摆脱嵌套列表?

1 个答案:

答案 0 :(得分:0)

如果内部列表中每个列表只包含一个元素,则可以通过非常简单的列表理解来取消嵌套列表。

>>> 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中长度为1的序列。

如果内部列表可以包含多个元素,请参见this question