我有以下数据集:
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 /效率的方法是什么?
答案 0 :(得分:2)
使用sorted
:
return sorted(data)
或者,如果您不关心修改data
,则可以使用.sort
执行(稍微更有效)的就地排序:
data.sort()
return data
元组的比较函数按第一个元素排序,然后是第二个元素,依此类推。