0

我有以下数据集:

import random

def get_data():
    data = []
    for a in xrange(10):
        serial_id = random.randint(0, 100)
        node_data = 'data-%d' % (a)
        data.append((serial_id, node_data))
    return data

这给出了(好吧,它是随机的,所以ymmv):

[(58, 'data-0'), (37, 'data-1'), (68, 'data-2'), (80, 'data-3'), (89, 'data-4'), (42, 'data-5'), (2, 'data-6'), (90, 'data-7'), (53, 'data-8'), (7, 'data-9')]

我想订购这个数据集serial_id,实现:

def order_data(data):
    ...
    return ordered

订购的地方是:

[(2, 'data-6'), ... , (90, 'data-7')]

什么是最pythonic/最有效的方法?

4

1 回答 1

2

使用sorted

return sorted(data)

或者,如果你不关心修改data,你可以使用.sort来做一个(稍微更有效的)就地排序:

data.sort()
return data

元组的比较函数按它们的第一个元素排序,然后是它们的第二个元素,依此类推。

于 2013-09-30T17:00:11.747 回答