我如何排序在Python中的SQL产生的元组的数组
问题描述:
我想基于特定的属性对sql查询中包含元组的数组进行排序。我有一个表是这样的:我如何排序在Python中的SQL产生的元组的数组
+-----+------------+-----------+
| lid | name | num |
+-----+------------+-----------+
| 2 | Ruby's | 0 |
| 3 | Five Guy's | 1 |
| 4 | Habana's | 0 |
+-----+------------+-----------+
,我想根据自己的NUM属性打印出来的名字AKA我所要的输出是:
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,我只是想惹圆了一些东西,所以请让我知道,如果有任何明显的问题
我正在蟒蛇= 2.7.10
答
for row in sorted(data, key=getKey):
print row['name']
答
您的问题是sorted()
返回列表的新分类副本。如果要排序离子场所使用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']
排序返回数据的副本。所以你需要使用data.sort(key = getKey)或data = sorted(data,key = getKey) –
@GarrettR我总是在询问python问题时这么做......谢谢! –
你可以使用'operator.attrgetter'去掉额外的函数 –