31

我有以下查询来检索单列数据:

routes_query = select(
    [schema.stop_times.c.route_number],
    schema.stop_times.c.stop_id == stop_id
).distinct(schema.stop_times.c.route_number)
result = conn.execute(routes_query)

return [r['route_number'] for r in result]

我想知道是否有一种更简洁的方法来检索返回的数据行的本机列表。

4

2 回答 2

65

将 1 元素元组列表提取到列表中的最简洁方法是:

result = [r[0] for r in result]

或者:

result = [r for r, in result]
于 2012-11-06T22:23:28.123 回答
2

这就是我会使用的:

return zip(*result)[0]

更简洁的是 zzzeek 的答案中的列表理解方法(22 个字符而不是 29 或 31 个字符),并且对于更大的结果集,此答案中类似问题的时间表明它也更快。

于 2017-07-23T13:08:18.327 回答