cur是光标到数据库。
cur.execute(select a,b from table)
List = cur.fetchall() is like this
[('a', Decimal('1420.3345345278832575')), ('b', Decimal('380.0000000000000000')),('c', Decimal('382.0000000000000000'))]
我想根据元组中的第二项(即十进制
)对此结果进行排序我试过了:
sorted(List,key=itemgetter(1))
这没有对名单进行排序。
有什么建议吗?
答案 0 :(得分:3)
sorted
不会修改原始列表,它会返回List
的新排序版本。您应该将返回的列表从sorted
分配给变量:
>>> lis = [('a', Decimal('1420.3345345278832575')), ('b', Decimal('380.0000000000000000')),('c', Decimal('382.0000000000000000'))]
>>> new_lis = sorted(lis, key=itemgetter(1))
>>> new_lis
[('b', Decimal('380.0000000000000000')), ('c', Decimal('382.0000000000000000')), ('a', Decimal('1420.3345345278832575'))]
或使用list.sort
对原始列表进行排序:
>>> lis = [('a', Decimal('1420.3345345278832575')), ('b', Decimal('380.0000000000000000')),('c', Decimal('382.0000000000000000'))]
>>> lis.sort(key=itemgetter(1))
>>> lis
[('b', Decimal('380.0000000000000000')), ('c', Decimal('382.0000000000000000')), ('a', Decimal('1420.3345345278832575'))]