我有一个动态生成的列表列表,类似于以下内容:
[
['author', 'title', 'series', 'series_order', 'genre', 'isbn'],
['Adams, Douglas', 'Mostly Harmless', 'Hitchhiker\'s Guide to the Galaxy', '5', 'Science Fiction', '9780345418777'],
['Simmons, Dan', 'Hyperion', 'Hyperion Cantos', '1', 'Science Fiction', '9780553283686'],
['Herbert, Frank', 'Dune', 'Dune Chronicles', '1', 'Science Fiction', '9780441172719']
]
有没有一种方法可以对它运行下面的SQL查询?Edit:对不起,我的意思是我想在上面运行Python等价的以下SQL代码。你知道吗
SELECT
author, title, series, series_order, genre, isbn
ORDER BY
`author` ASC, `series` ASC, `series_order` ASC, `title` ASC;
我目前的计划是动态地将它们添加到一个临时SQLite数据库中,运行查询,完成后删除SQLite数据库。你知道吗
有人有更好的主意吗?你知道吗
使代码更具可读性的一个选项是^{} :
注意,我使用了第一个子列表(头)来定义
namedtuple
的属性,然后将其余子列表转换为新的Book
对象。现在您的排序变得更加清晰,因为您可以使用attrgetter
和属性名称,而不是itemgetter
和索引:您还可以执行其他SQL样式的操作,例如
WHERE
:或者,一个
Book
类可能是合适的,然后您可以实现自己的rich comparison methods,直接使用sorted
:列表理解与
itemgetter
排序相结合是SQLesque。你知道吗相关问题 更多 >
编程相关推荐