如何对 Python 中生成的 sql 元组数组进行排序
How can I sort an array of sql produced tuples in Python
我想根据特定属性对包含来自 sql 查询的元组的数组进行排序。我有一个 table 这样的:
+-----+------------+-----------+
| 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
for row in sorted(data, key=getKey):
print row['name']
您的问题是 sorted()
return 是列表的新排序副本。如果您想对离子位置进行排序,请使用 data.sort(key=getKey)
(如果 data
是一个列表)。您需要将 sorted()
的 return 值保存到某些内容才能正确使用它:
...
data = cursor.fetchall()
...
def getKey(name):
return name['num']
sorted_data = sorted(data, key=getKey)
for row in sorted_data:
print row['name']
我想根据特定属性对包含来自 sql 查询的元组的数组进行排序。我有一个 table 这样的:
+-----+------------+-----------+
| 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
for row in sorted(data, key=getKey):
print row['name']
您的问题是 sorted()
return 是列表的新排序副本。如果您想对离子位置进行排序,请使用 data.sort(key=getKey)
(如果 data
是一个列表)。您需要将 sorted()
的 return 值保存到某些内容才能正确使用它:
...
data = cursor.fetchall()
...
def getKey(name):
return name['num']
sorted_data = sorted(data, key=getKey)
for row in sorted_data:
print row['name']