Python sorted関数 二重配列

投稿者: | 2017年4月8日
#!/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で挙動が違うのもややこしやー

 

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA