89867


Python初心者です。  
[(名前、数字)(名前、数字)・・・]といった二次元配列があり、名前の要素が重複している場合に一番最後にある数字の要素を取り出したいですがどうすればいいのかわかりません。

(名前、数字)は標準入力により逐次追加する形なので  
インデックスでの指定方法も試してみたのですがよくわかりませんでした。

[code]

    info_list=[('Andy', '530'), ('Li', '30'), ('Andy', '310')]
    
[/code]

下記のようなデータがあった場合、Andyさんが重複しているので、('Andy', '530')ではなく('Andy',
'310')として新しいリストに入れたいです。  
最終的にはこのような出力にさせたいです。

[code]

    [ ('Li', '30'), ('Andy', '310')]
    
[/code]

以下は自分が書いたコードなのですが

[code]

    register_list=[]
    if info_list[0]==info_list[0]:
                    for row in range(len(info_list)):
                        register_list=[info_list[row][0],info_list[row][1]]
                        print(register_list)
    
[/code]

これでは二次元配列を1つずつ取り出しただけなので出力は以下のようになってしまいます。

[code]

    ['Andy', '530']
    ['Li', '30']
    ['Andy', '310']
    
[/code]


CC BY-SA 4.0
2022-07-09T11:52:23.033
89864
2022-07-09T12:22:20.737
2022-07-09T12:22:20.737
question
python
二次元配列で重複している場合それぞれの要素の一番最後の要素を上書きしたい

[code]

    info_list=[('Andy', '530'), ('Li', '30'), ('Andy', '310')]
    register_list = list(dict(info_list).items())
    print(register_list)
    
    #
    # [('Andy', '310'), ('Li', '30')]
    
[/code]


CC BY-SA 4.0
2022-07-09T12:15:33.923
89867
2022-07-09T12:15:33.923
47127
89864
answer