python - 如何从数据库查询中删除列表中的嵌套列表?

标签 python database list sqlite

任务:

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

到目前为止我的代码:

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

如何摆脱嵌套列表?

最佳答案

如果您的内部列表仅包含一个元素,则有一种非常简单的列表理解可以解除列表的嵌套。

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

关于python - 如何从数据库查询中删除列表中的嵌套列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53463309/

相关文章:

python - pandas如何在不创建新列的情况下进行外连接

php - 如何在mysql数据库中存储数据对?

python /鼠尾草 : can lists start at index 1?

python - 将数据加载到Mysql中的表中

python - 为什么嵌套循环的顺序之间存在性能差异?

Android:当 wal 存在时执行数据更新后复制 db 文件不起作用

sql - 将 MySQL 迁移到具有不同结构的表

python - 列表推导式到 For 循环

c++ - 列表迭代器删除最后一个元素

python - 如果字段为 None,Django 模型字段如何采用默认值