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の回答のリスト内包法(29文字または31文字ではなく22文字)の方が簡潔であり、より大きな結果の場合、同様の質問に対するこの回答のタイミングは、それも高速であることを示しています。

于 2017-07-23T13:08:18.327 に答える