python 使用记录

时间:2015-05-11 16:04:52   收藏:0   阅读:198

元组比较:

1 >>> (0, 1, 2) < (0, 3, 4)
2 True
3 >>> (0, 1, 2000000) < (0, 3, 4)
4 True

列表的多字段排序:

sorted_list = [
    [1, 2, 3, 4, 5, 6, 7, 8],
    [3, 2, 6, 1, 8, 4, 6, 1],
    [8, 3, 5, 1, 3, 9, 0, 2],
    [9, 8, 7, 6, 5, 3, 2, 1]
]

sorted(sorted_list, key = lambda item: (item[1], item[4], item[3]), reverse = True)

# result
[[9, 8, 7, 6, 5, 3, 2, 1],
 [8, 3, 5, 1, 3, 9, 0, 2], 
 [3, 2, 6, 1, 8, 4, 6, 1],
 [1, 2, 3, 4, 5, 6, 7, 8]]

列表-列表的分组操作:

import itertools

sorted_list = [
    [1, 2, 3, 4, 5, 6, 7, 8],
    [1, 2, 6, 1, 8, 4, 6, 1],
    [8, 2, 5, 7, 3, 9, 0, 2],
    [9, 8, 7, 6, 5, 3, 2, 1]
]


sorted([[key, [item for item in items]] for key, items in itertools.groupby(sorted_list, key = lambda item: (item[0], item[1]))], key = lambda item: item[0][0])

# result

[

[ (1, 2), [ [1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 6, 1, 8, 4, 6, 1] ] ], #分组1

[(8, 2), [ [8, 2, 5, 7, 3, 9, 0, 2] ] ], #分组2

[(9, 8), [ [9, 8, 7, 6, 5, 3, 2, 1] ] ] #分组3

]

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!