#!/usr/bin/env python # -*- coding: utf-8 -*- # Created by devel on 2017/04/07. def main(): b = [('cathy', '4'), ('eijiro', '2'), ('alice', '6'), ('dad', '3'), ('betty', '5'), ('franca', '1')] b2 = list(map(lambda x:(x[0],int(x[1])), b)) #map関数で二重リストの中身を指定してintに変換 (x[0], x[1]) print(sorted(b, key=lambda x:(x[1], x[0]), reverse=True)) # lambdaでソートを適応する場所を指定している。 print(b2) """ [('alice', '6'), ('betty', '5'), ('cathy', '4'), ('dad', '3'), ('eijiro', '2'), ('franca', '1')] [('cathy', 4), ('eijiro', 2), ('alice', 6), ('dad', 3), ('betty', 5), ('franca', 1)] """ if __name__ == '__main__': main()
うーん・・・
二重配列はややこしい・・・
python3.5と3.6で挙動が違うのもややこしやー