如何在Python中对sql生成的元组数组进行排序

2024-09-27 09:23:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想根据特定属性对包含sql查询中元组的数组进行排序。我有一张这样的桌子:

+-----+------------+-----------+
| lid | name       | num       |
+-----+------------+-----------+
|   2 | Ruby's     |         0 |
|   3 | Five Guy's |         1 |
|   4 | Habana's   |         0 |
+-----+------------+-----------+

我想根据它们的num属性打印出名字,也就是说,我希望输出是:

Five Guy's
Ruby's
Habana's

我正试图通过以下方式实现这一点:

...
data = cursor.fetchall()
...
def getKey(name):
    return name['num']
sorted(data, key=getKey)
for row in data:
    print row['name']

但这会按以下顺序输出数据:

Ruby's
Five Guy's
Habana's

我对python非常陌生,我只是想搞乱一些事情,所以如果有任何明显的问题,请告诉我

我正在运行python=2.7.10


Tags: namesqldata属性排序数组numrow
2条回答

问题是sorted()返回列表的新排序副本。如果要对ion place进行排序,请使用data.sort(key=getKey)(如果data是一个列表)。您需要将sorted()的返回值保存到某个对象以正确使用它:

...
data = cursor.fetchall()
...
def getKey(name):
    return name['num']
sorted_data = sorted(data, key=getKey)
for row in sorted_data:
    print row['name']
for row in sorted(data, key=getKey):
    print row['name']

相关问题 更多 >

    热门问题